{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 实验报告：决策树与随机森林在Wine数据集上的表现对比\n",
    "20221200556 杨鑫其\n",
    "## 实验目标\n",
    "- 在sklearn的load_wine数据集上实现决策树算法\n",
    "- 实现自定义随机森林算法\n",
    "- 对比自定义随机森林、sklearn随机森林和决策树在Wine数据集上的表现\n",
    "- 使用准确率（Accuracy）、F1分数（F1-score）、分类报告和混淆矩阵进行性能评估"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-13T06:10:54.634390Z",
     "start_time": "2025-06-13T06:10:54.372934Z"
    }
   },
   "outputs": [],
   "source": [
    "# 导入必要的库\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.datasets import load_wine\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from sklearn.metrics import accuracy_score, f1_score, classification_report, confusion_matrix\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "import seaborn as sns\n",
    "\n",
    "# 设置随机种子\n",
    "np.random.seed(42)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 数据预处理\n",
    "加载Wine数据集并进行标准化处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-13T06:10:54.649815Z",
     "start_time": "2025-06-13T06:10:54.635683Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练集形状: (124, 13)\n",
      "测试集形状: (54, 13)\n",
      "类别数: 3\n"
     ]
    }
   ],
   "source": [
    "# 加载Wine数据集\n",
    "wine = load_wine()\n",
    "X = wine.data\n",
    "y = wine.target\n",
    "\n",
    "# 数据集划分\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)\n",
    "\n",
    "# 标准化数据\n",
    "scaler = StandardScaler()\n",
    "X_train_scaled = scaler.fit_transform(X_train)\n",
    "X_test_scaled = scaler.transform(X_test)\n",
    "\n",
    "# 数据信息\n",
    "print(f\"训练集形状: {X_train_scaled.shape}\")\n",
    "print(f\"测试集形状: {X_test_scaled.shape}\")\n",
    "print(f\"类别数: {len(np.unique(y))}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 决策树实现\n",
    "使用sklearn的决策树分类器在Wine数据集上进行训练和测试"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-13T06:10:54.681170Z",
     "start_time": "2025-06-13T06:10:54.650993Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "决策树 - 准确率: 0.9630\n",
      "决策树 - F1分数: 0.9628\n",
      "决策树分类报告:\n",
      "               precision    recall  f1-score   support\n",
      "\n",
      "           0       0.95      0.95      0.95        19\n",
      "           1       0.95      1.00      0.98        21\n",
      "           2       1.00      0.93      0.96        14\n",
      "\n",
      "    accuracy                           0.96        54\n",
      "   macro avg       0.97      0.96      0.96        54\n",
      "weighted avg       0.96      0.96      0.96        54\n",
      "\n",
      "决策树混淆矩阵:\n",
      " [[18  1  0]\n",
      " [ 0 21  0]\n",
      " [ 1  0 13]]\n"
     ]
    }
   ],
   "source": [
    "# 决策树模型\n",
    "dt_classifier = DecisionTreeClassifier(random_state=42)\n",
    "dt_classifier.fit(X_train_scaled, y_train)\n",
    "dt_predictions = dt_classifier.predict(X_test_scaled)\n",
    "\n",
    "# 评估决策树\n",
    "dt_accuracy = accuracy_score(y_test, dt_predictions)\n",
    "dt_f1 = f1_score(y_test, dt_predictions, average='weighted')\n",
    "\n",
    "print(f\"决策树 - 准确率: {dt_accuracy:.4f}\")\n",
    "print(f\"决策树 - F1分数: {dt_f1:.4f}\")\n",
    "print(\"决策树分类报告:\\n\", classification_report(y_test, dt_predictions))\n",
    "print(\"决策树混淆矩阵:\\n\", confusion_matrix(y_test, dt_predictions))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 自定义随机森林实现\n",
    "实现一个简单的随机森林算法，基于多棵决策树和bagging"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-13T06:10:54.804779Z",
     "start_time": "2025-06-13T06:10:54.683091Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "自定义随机森林 - 准确率: 0.9630\n",
      "自定义随机森林 - F1分数: 0.9632\n",
      "自定义随机森林分类报告:\n",
      "               precision    recall  f1-score   support\n",
      "\n",
      "           0       1.00      0.95      0.97        19\n",
      "           1       0.91      1.00      0.95        21\n",
      "           2       1.00      0.93      0.96        14\n",
      "\n",
      "    accuracy                           0.96        54\n",
      "   macro avg       0.97      0.96      0.96        54\n",
      "weighted avg       0.97      0.96      0.96        54\n",
      "\n",
      "自定义随机森林混淆矩阵:\n",
      " [[18  1  0]\n",
      " [ 0 21  0]\n",
      " [ 0  1 13]]\n"
     ]
    }
   ],
   "source": [
    "class RandomForest:\n",
    "    def __init__(self, n_estimators=100, max_depth=None, min_samples_split=2, random_state=None):\n",
    "        self.n_estimators = n_estimators\n",
    "        self.max_depth = max_depth\n",
    "        self.min_samples_split = min_samples_split\n",
    "        self.random_state = random_state\n",
    "        self.trees = []\n",
    "\n",
    "    def fit(self, X, y):\n",
    "        np.random.seed(self.random_state)\n",
    "        for _ in range(self.n_estimators):\n",
    "            # 随机抽样（有放回）\n",
    "            bootstrap_indices = np.random.choice(len(X), len(X), replace=True)\n",
    "            X_bootstrap = X[bootstrap_indices]\n",
    "            y_bootstrap = y[bootstrap_indices]\n",
    "            # 训练决策树\n",
    "            tree = DecisionTreeClassifier(max_depth=self.max_depth, min_samples_split=self.min_samples_split, random_state=self.random_state)\n",
    "            tree.fit(X_bootstrap, y_bootstrap)\n",
    "            self.trees.append(tree)\n",
    "\n",
    "    def predict(self, X):\n",
    "        # 每棵树的预测结果\n",
    "        predictions = np.array([tree.predict(X) for tree in self.trees])\n",
    "        # 多数投票\n",
    "        majority_vote = np.apply_along_axis(lambda x: np.bincount(x).argmax(), axis=0, arr=predictions)\n",
    "        return majority_vote\n",
    "\n",
    "# 训练自定义随机森林\n",
    "custom_rf = RandomForest(n_estimators=100, random_state=42)\n",
    "custom_rf.fit(X_train_scaled, y_train)\n",
    "custom_rf_predictions = custom_rf.predict(X_test_scaled)\n",
    "custom_rf_accuracy = accuracy_score(y_test, custom_rf_predictions)\n",
    "custom_rf_f1 = f1_score(y_test, custom_rf_predictions, average='weighted')\n",
    "\n",
    "print(f\"自定义随机森林 - 准确率: {custom_rf_accuracy:.4f}\")\n",
    "print(f\"自定义随机森林 - F1分数: {custom_rf_f1:.4f}\")\n",
    "print(\"自定义随机森林分类报告:\\n\", classification_report(y_test, custom_rf_predictions))\n",
    "print(\"自定义随机森林混淆矩阵:\\n\", confusion_matrix(y_test, custom_rf_predictions))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## sklearn随机森林实现\n",
    "使用sklearn的随机森林分类器进行训练和测试"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-13T06:10:54.927655Z",
     "start_time": "2025-06-13T06:10:54.806813Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "sklearn随机森林 - 准确率: 1.0000\n",
      "sklearn随机森林 - F1分数: 1.0000\n",
      "sklearn随机森林分类报告:\n",
      "               precision    recall  f1-score   support\n",
      "\n",
      "           0       1.00      1.00      1.00        19\n",
      "           1       1.00      1.00      1.00        21\n",
      "           2       1.00      1.00      1.00        14\n",
      "\n",
      "    accuracy                           1.00        54\n",
      "   macro avg       1.00      1.00      1.00        54\n",
      "weighted avg       1.00      1.00      1.00        54\n",
      "\n",
      "sklearn随机森林混淆矩阵:\n",
      " [[19  0  0]\n",
      " [ 0 21  0]\n",
      " [ 0  0 14]]\n"
     ]
    }
   ],
   "source": [
    "# sklearn随机森林\n",
    "sklearn_rf = RandomForestClassifier(n_estimators=100, random_state=42)\n",
    "sklearn_rf.fit(X_train_scaled, y_train)\n",
    "sklearn_rf_predictions = sklearn_rf.predict(X_test_scaled)\n",
    "\n",
    "# 评估sklearn随机森林\n",
    "sklearn_rf_accuracy = accuracy_score(y_test, sklearn_rf_predictions)\n",
    "sklearn_rf_f1 = f1_score(y_test, sklearn_rf_predictions, average='weighted')\n",
    "\n",
    "print(f\"sklearn随机森林 - 准确率: {sklearn_rf_accuracy:.4f}\")\n",
    "print(f\"sklearn随机森林 - F1分数: {sklearn_rf_f1:.4f}\")\n",
    "print(\"sklearn随机森林分类报告:\\n\", classification_report(y_test, sklearn_rf_predictions))\n",
    "print(\"sklearn随机森林混淆矩阵:\\n\", confusion_matrix(y_test, sklearn_rf_predictions))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 性能对比与可视化\n",
    "对比三种模型的性能，并绘制混淆矩阵和性能指标柱状图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-13T06:10:55.427597Z",
     "start_time": "2025-06-13T06:10:54.931317Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 600x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAf4AAAGHCAYAAABRQjAsAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABJIUlEQVR4nO3dd1xT1/8/8FcYAZSlCDirRSuisgRFK1RRq7Ra6ypVK+7NaJUqglu0aGmdOHDrx1lHh1prq7WtWhVFBa2jDDeIUAUHIwL5/eGPfI0BDSOJcF7PPu7j0Zyc3PtOAF85557cSORyuRxEREQkBD1dF0BERETaw+AnIiISCIOfiIhIIAx+IiIigTD4iYiIBMLgJyIiEgiDn4iISCAMfiIiIoEw+KsoXpeJyoK/N5Ubf36kDga/Fly8eBGTJk1Cx44d4eTkhC5dumD69Om4fft2hR/r0aNHmDx5Ms6ePVvh+1aXn58f7O3tlbZmzZqhVatW6NOnD3788Uet1mNvb49ly5Zp9ZgvH7+kzdXVVWd1vSw2NhajR49Wq++jR48QFRWFjz76CK6urmjXrh2GDBmC33//XWP1Xbt2Db169ULLli3x4YcfVth+O3XqhClTplTY/l53LHt7ewQHB5fYx9fXt0y/s0eOHEFISMhr+02ZMgWdOnUq1b6pajHQdQFV3datW/HVV1/Bw8MDwcHBsLGxwc2bN7Fu3Tr8+uuv2LRpE5o1a1Zhx7ty5Qp+/PFH9O3bt8L2WRbNmzfHzJkzFbcLCgpw7949bNy4EZMnT4alpSU6dOigwwq1q1+/fvjkk09U2vX03pz33rt27UJSUtJr+yUlJWHUqFEoLCzE4MGD0axZM2RnZ2Pfvn0YN24cPv/8c4wfP77C61u+fDlSUlKwfPly1KxZs8L2GxUVBVNT0wrb3+vo6enh6NGjyMvLg5GRkdJ9d+7cQVxcXJn2u3HjRrX6jR8/HoMHDy7TMahqYPBrUGxsLObNm4fPPvsMU6dOVbR7eHigS5cu6NWrF8LCwrB3714dVqkZpqamcHFxUWl/77330K5dO+zdu1eo4K9du3axr0dl8+zZM3zxxRcwNDTEtm3bYGVlpbivaCZryZIl6NSpU4W+oQWAhw8fomnTphX+e9O8efMK3d/rtGrVCmfPnsVff/2F999/X+m+n3/+GQ4ODrhy5YrGjv/WW29pbN9UObw5w40qaN26dTAzM8PEiRNV7qtZsyamTJmCzp07Izs7G0DxU9LLli2Dvb294vaDBw8QHByM9u3bw9HRER9//DF++OEHAMDp06cV7+QHDx4MPz8/xeN+/vln9OnTB66urmjfvj1mzJiBrKwspeP4+Pjgt99+Q48ePRT7Pn/+PC5cuIBPPvkETk5O6NGjB06ePFnm18TIyAhSqRQSiUTpOc2ePRve3t5o2bIl2rRpA39/f9y5c0fRx8/PD1OnTsXq1avRsWNHODo6on///oiPj1faf0xMDD799FM4OzujW7du+Pvvv1VqePz4MSIiItClSxc4OjqiR48e2L17t1KfTp06ISoqSjFb4+rqiuDgYDx9+hSrV6/Ge++9Bzc3NwQGBuLhw4dlfj3KUtdXX32FIUOGwMnJSfGGMjMzEzNmzMC7774LR0dH+Pr6qvycTpw4AV9fX7i6uqJ169YYN26cYoQ/ZcoUfP/997h79y7s7e1LfDP6559/4t9//8Xnn3+uFPpFgoKCMGjQIOTn5yvaLl68iBEjRsDDwwOtWrXC2LFjkZCQoLj/9OnTsLe3x8mTJzF8+HA4Ozujffv2iIyMREFBAYDnfxsxMTE4c+aMor6X/zaKvPx3tH//fvTs2RNOTk5o27YtvvzyS6SlpSm9pi9O9av7c1i6dCkWLFiAd999F05OThgxYgRu3LhR7Ov2ogYNGqBly5b45ZdfVO77+eef0b17d5X2O3fuYPLkyfD09ESLFi3Qrl07TJ48WfG75+fnh5iYGMTExMDe3h6nT59WvK47duyAt7c3WrVqhRMnTihN9R85ckTl9UpKSoKTkxPCwsJe+1yocmLwa4hcLsfx48fRrl07mJiYFNvnww8/hL+/P6pVq6b2fidNmoSkpCTMnj0ba9asQfPmzRESEoJTp06hRYsWmDFjBgBgxowZiqn2FStWYOLEiXBxccHSpUvh7++PQ4cOwc/PD7m5uYp937t3D/Pnz8fYsWOxZMkSPHr0CEFBQZg4cSI++eQTLF++HHK5HBMmTFB6XEnPPz8/X7Hl5eUhOTkZoaGhePr0KT7++GNFvzFjxuDEiRP48ssvsW7dOgQEBODkyZNKpwoA4NChQzhy5AimTZuGhQsXIiMjA4GBgYpw+OeffzB8+HCYmZlh6dKlGDx4sMqbrtzcXAwcOBD79u3DyJEjsWLFCri5uWHq1KlYtWqVUt/169cjNTUVixYtwrhx47B//3707dsXx48fR3h4OCZOnIgjR45g6dKlr/25FRYWKr0eRVtZ6tq6dSscHR2xYsUK9OvXD3l5eRgyZAiOHDmCCRMmICoqCrVr18bIkSMV4X/79m2MHz8eLVu2xMqVKzFv3jxcv34do0ePRmFhIcaPH48OHTrA2toaO3fuRMeOHYt9Hn/99Rf09fVLHHVbW1tj+vTpaNmyJQDg1KlTGDBgAADgq6++wty5c5Gamor+/furnFb48ssv4ebmhlWrVqFHjx5Yu3Ytdu3aBQDYuXMnmjdvjubNm7+yvpfFxsZi8uTJ6Nq1K9asWYPQ0FCcOnWqxHPspfk5bN68GcnJyYiIiMDcuXNx6dIltc6xA8//9oum+4skJyfj6tWrKsGfk5ODwYMHIykpCTNnzsS6deswePBgHDhwAIsWLQIAzJw5U+n1adGiheLxUVFRCAkJwYwZM1TWlHTu3Bk9e/ZEdHQ0kpKSkJ+fj8mTJ8PW1lZplpKqFk71a8jDhw+Rl5eH+vXrV+h+Y2Ji4O/vjy5dugAA2rRpA0tLS0ilUpiamqJJkyYAgCZNmqBJkybIysrCypUr4evrq3hTAABNmzbFZ599hj179uCzzz4D8PwfmJkzZ+K9994DACQmJuLbb7/FvHnz0K9fPwBAdnY2goKCcP36dTg4OJRY55kzZ5T+8QEAiUSCpk2bYsmSJfD29gYA3L9/HyYmJggJCYG7uzuA56dCbt26hZ07dyo9Pj8/H+vWrVOcj3369ClCQkJw5coVtGzZEtHR0bCyssLKlSthaGgIAKhRowYmTJig2MfevXvx77//YseOHYp/BL28vJCfn48VK1agf//+sLS0BPD8dMWiRYtgYGCAd999F99//z3S0tKwa9cumJmZAQCOHTuGc+fOvfbntmLFCqxYsUKl/fjx47C2ti5VXXXr1sWXX36p2Md3332Hq1ev4rvvvoOzszOA56dU/Pz88M0332DPnj2Ij49Hbm4uxowZA1tbWwDPTz8cOXIE2dnZeOutt1CzZk1IpdJXnpK4d+8eatSogerVq7/2OQPAt99+i4YNG2L16tXQ19cHAHh6euL999/H0qVLsWTJEkXfTz75BP7+/gCAdu3a4fDhw/jjjz/Qv39/uLi4KH7upTllEhsbC2NjY4wePRpSqRQAYGlpiYsXL0IulyvNPAGl+/0wNzfHihUrFM/r1q1bWLZsGR4+fIgaNWq8sq4PPvgAkZGRStP9P//8M1xdXVG3bl2lvjdu3EDt2rWxYMECNGjQAADQtm1bxMXFISYmBsDzv/eSXp+BAwfCx8enxFqmTZuGU6dOYc6cOWjbti2uXLmCbdu2qf0zpsqHwa8hRf8YFI1GK4qHhweWLVuGy5cvw8vLCx06dHjlKOPChQuQyWTo0aOHUru7uzvq1auHmJgYRfADz88/FqlVqxYAKMIEgOIfvUePHr2yzhYtWmD27NkAnof74sWL8ezZMyxevBh2dnaKfra2tti8eTPkcjnu3LmDmzdvIjk5GefOnYNMJlPa54v/uBU9Fnj+hgV4/o+8t7e3IvQBoGvXroqfBfD8jVO9evVURj49e/bE7t27ERcXpxjNOjk5wcDg//5EatWqhWrVqilCv+j1+Pfff1/5WgDPV2r7+vqqtBcFRGnqevkN18mTJ2FtbY0WLVoozSJ4e3vj66+/RlZWFpydnWFkZIR+/frBx8cH7733Hjw8PODk5PTa2l+kr6+v9u90dnY2Ll68iICAAKWfgbm5Oby9vfHnn38q9X/5udeuXVtxGqysWrdujUWLFqFHjx7o1q0bOnToAE9PzxJnLErzc3B0dFR6XrVr1wbw/PfxdcFft25duLi44JdfflEK/hf/Fos4ODhg27ZtKCwsxI0bN3Dz5k0kJiYiOTlZ6eddkle9QQcACwsLhIeHY8yYMYiJicH48eOrxHoUKhmDX0MsLCxQvXp1pKSklNgnOzsbz549g4WFhdr7XbRoEVatWoWDBw/i0KFD0NPTw7vvvos5c+agXr16Kv2LzuMXhfiLatWqhcePHyu1Fbe6uaRTFa9SvXp1ODo6Km47OzujZ8+eGD58OPbu3au0Kvunn37CwoULkZqaCktLSzg4OMDY2Pi1dRStiC8sLATw/Lm+/A+ugYGBUltWVhasra1V9l30+rz4hqa416I0p2VeZGNjo/R6vKw0db1cQ2ZmJtLT01VmWIqkp6ejSZMm2LJlC1avXo3du3dj8+bNMDc3x8CBA/HFF1+ojHxLUq9ePfzxxx94+vRpiSPCe/fuoXbt2nj8+DHkcrnav3sv/8z19PTK/bl0V1dXrF69Ghs3bsSGDRuwevVq1KpVC2PHjlVaA1OkND+H1/0+vs4HH3yAJUuWIC8vD9evX8eNGzdKHJlv2LABq1atQmZmJmrVqoWWLVvCxMRE5TUsjjq/s++++y5sbGxw//59xWwcVV08x69Bnp6eOH36tNJ5vBd99913aNu2Lf755x9F28ujqZdHPGZmZpg0aRJ+//13HDx4EBMnTsS5c+cUo+uXFb2pyMjIULkvPT39tSOTilKrVi3MmDEDqampmDdvnqL97NmzCAkJQdeuXfHXX3/h9OnT2LhxY5lGHJaWlirPUy6XKy1itLCwQHp6uspji9q09Xq8rDx1mZmZoVGjRti9e3exW9HpJicnJ0RFRSle4/bt22PVqlXFLjIriaenJwoLC3Hs2LFi73/w4AE6d+6MefPmwczMDBKJpMTfvaLZo7IqerPy4t/M06dPVfp5eXlh3bp1OHPmDFatWoWmTZti7ty5KgtDAe3+fvj4+CAnJwfHjh3DwYMH0bZt22IXTO7btw/z58/HqFGjcPLkSZw4cQLR0dFo1KhRhdUSFRWFzMxM2NnZYdq0aXj27FmF7ZvePAx+DRo+fDgyMzOxePFilfvS09Oxfv16NGnSRDFSMzU1VVptDEDp/PHdu3fRoUMHxT/UdnZ2GDVqFN59913FzMKLU4/A85G2VCrF/v37ldrPnj2LlJQUpal9TfPx8YGXlxf279+vODd5/vx5FBYWIjAwUDF1X1BQoFiNr+7oCXh+Xvivv/5STP0Dz8/Bv/iPWOvWrXH37l2cP39e6bE//fQTDA0NSz31XVHKU1ebNm2QmpoKKysrODo6KrYTJ05g7dq10NfXx8aNG+Ht7Q2ZTAapVIp27dohPDwcABS/O+pcU8DT0xNNmzbFokWLiv00w7fffov8/Hx89NFHqFatGlq2bImDBw8qhfPjx4/xxx9/wM3NTa3XpiRFMzL37t1TtMXGxir1WbBgAfr27Qu5XA4TExN4e3srTo0VNxunzd8PW1tbuLm54ZdffsHBgweLXc0PPH9O5ubmGDlypGKm7OnTp4iNjVX6+yjrNSHi4+Oxdu1ajBs3DpGRkfj333+xcuXKMu2LKgdO9WuQi4sLPv/8cyxevBhJSUno1asXatSogYSEBKxbtw55eXlKbwo6duyIAwcOwNnZGQ0bNsTevXtx8+ZNxf316tVD7dq1MXfuXDx58gRvvfUWLl26hD///BNjxowBAMX55z/++AMWFhZo1qwZRo8ejeXLl8PQ0BDe3t64c+cOlixZgiZNmqB3795afU3CwsLQs2dPzJ07F99//73iH9I5c+agb9++yMrKwtatW3H16lUAz2c81L24ir+/Pw4fPowRI0Zg5MiRePDgARYvXqx0zr9Pnz7Ytm0b/P39ERQUhPr16+P333/Hnj17EBAQAHNz84p/0mooT119+vTBli1bMGzYMIwdOxZ16tTB33//jTVr1mDQoEEwNDRE27Zt8c0338Df3x+DBg2Cvr4+duzYAalUqpjaNTc3R0ZGBv788084ODjAxsZG5VgGBgb4+uuvMXz4cPTt21dxAZ8HDx5g7969OHbsGIKDgxU/1+DgYIwYMQKjR4/GwIED8ezZM6xevRoymUyxkK+sOnTogIiICMyYMQMjRoxAamoqli9frnQKom3bttiwYQOmTJmCnj174tmzZ1i7di0sLS3Rtm3bCv05lMUHH3yAiIgISCQSdO3atdg+Tk5O2L59O+bPnw9vb2/cv38f69atQ0ZGhtJpQnNzc5w/fx4nT55U+9oEMpkMU6ZMQePGjTFq1CgYGhpi0KBBiI6ORpcuXbR+jQPSDo74NWzcuHFYvXo1gOcfZxo9ejS2bNmCjh074ocffkDjxo0VfUNDQ+Ht7Y0FCxYgKCgI1apVU/nYUVRUFLy8vLBkyRIMHz4c27dvR0BAgOIf0XfeeQc9evTA1q1bFSu/AwMDMXPmTJw6dQpjx45FVFQUfHx8sG3btjKfsy4rOzs7+Pn54dq1a9i+fTs8PDwwY8YMnD9/HqNGjcL8+fNRt25dREVFAVAdwb1Ko0aNsGXLFujr62PChAlYsWIFQkJClP5xNDExwf/+9z94e3tjyZIlGDdunOJCS4GBgRX+fNVVnrqqVauGrVu3ws3NDZGRkRg1ahR+/fVXBAcHIzQ0FADQrFkzrFq1Ck+ePMHEiRMREBCAzMxMrF+/XrHYsk+fPqhXrx78/f0V14YojoODA3bv3o1OnTph+/btGDt2LObOnYuCggKsXbtW6bK/7dq1w4YNG5Cbm4uJEydi+vTpsLW1xXfffYemTZuW6zV7++23sWDBAty5cwejR4/G5s2bER4ervSGpUOHDvjmm2+QkJCAgIAATJw4ESYmJti8eXOxpxq0/fvh4+ODwsJCeHl5KS0afVHv3r3h7++PgwcPYtSoUVi6dCnc3d0xZ84cZGZmKj4W+dlnn8HQ0BCjRo3CX3/9pdbxFy9ejOvXryM8PFzxBvmLL76AjY0NQkJCVBbYUtUgkfNbHYiIiITBET8REZFAGPxEREQCYfATEREJhMFPREQkEAY/ERGRQBj8REREAmHwExERCaRKXrnP1HejrksgLbq9UfXLVqjqMpHqv74TVRnGGk4pE9eAMj8253xUBVaiPVUy+ImIiNQiEW/im8FPRETiUvMrqasSBj8REYlLwBG/eM+YiIhIYBzxExGRuDjVT0REJBABp/oZ/EREJC6O+ImIiATCET8REZFABBzxi/dWh4iISMvS0tIQFBSENm3awMvLCxEREcjLywMA3L59G0OHDoWLiws+/PBDHD9+/JX72r9/P7p06QJnZ2f4+/vjwYMHpaqFwU9EROKS6JV9U5NcLkdQUBBycnKwdetWLFq0CEePHsXixYshl8vh7++PWrVqYc+ePfj4448REBCAlJSUYvcVHx+PqVOnIiAgADt37sSjR48QGhpaqqfMqX4iIhKXFqb6k5OTceHCBZw4cQK1atUCAAQFBWHBggV47733cPv2bezYsQPVqlVD48aNcfLkSezZsweBgYEq+9qyZQs++OAD9OrVCwDw9ddfw9vbG7dv30aDBg3UqocjfiIiElc5RvwymQxPnjxR2mQymcohrK2tsXbtWkXoF3ny5Ani4uLQvHlzVKtWTdHu5uaGCxcuFFtuXFwc3N3dFbfr1KmDunXrIi4uTu2nzOAnIiJxSSRl3qKjo+Hm5qa0RUdHqxzC3NwcXl5eituFhYXYsmUL2rZti/T0dNjY2Cj1t7Kywr1794ot9/79+6XqXxxO9RMRkbjK8XG+MWPGYNiwYUptUqn0tY+LjIzE5cuXsXv3bmzcuFHlMVKptNiZAwDIzc0tVf/iMPiJiIjKQCqVqhX0L4qMjMSmTZuwaNEiNG3aFEZGRsjMzFTqI5PJYGxsXOzjjYyMVEJeJpPBxMRE7RoY/EREJC4tXsAnPDwc27dvR2RkJLp16wYAsLW1RWJiolK/jIwMlen8Ira2tsjIyFDpb21trXYdPMdPRETi0pOUfSuFqKgo7NixAwsXLkT37t0V7c7Ozvjnn3+Qm5uraIuNjYWzs3Ox+3F2dkZsbKzidmpqKlJTU0vsX+xTLlXlREREVYkWPseflJSEFStWYNSoUXBzc0N6erpia9OmDerUqYPQ0FAkJCRg9erViI+PR79+/QA8n8ZPT09HQUEBAGDAgAH48ccfsWvXLly9ehWTJ09Gx44d1f4oH8DgJyIikZVjVb+6jhw5goKCAqxcuRKenp5Km76+PlasWIH09HT06dMHP/30E5YvX466desCAM6fPw9PT0+kpqYCAFxdXTFnzhwsX74cAwYMgIWFBSIiIkr3lOVyubxUj6gETH036roE0qLbG/10XQJpkYlUX9clkBYZa3glmkmX+WV+bM7hKRVYifZwxE9ERCQQruonIiJxCfjtfAx+IiISlxY/zvemYPATEZG4OOInIiISCEf8REREAhFwxC/eWx0iIiKBccRPRETi4lQ/ERGRQASc6mfwExGRuDjiJyIiEgiDn4iISCACTvWL91aHiIhIYBzxExGRuDjVT0REJBABp/oZ/EREJC6O+ImIiATCET8REZE4JAIGv3hzHERERALjiJ+IiIQl4oifwU9EROISL/cZ/EREJC6O+ImIiAQiYvBzcV8lJjXQQ8w3H8OreW1F27vNbHBsfg+kbf4Mf3/dEx0d6+iwQtIkmUyGgf16IvZsjK5LIQ3Ky8vDzOlh8Gzrjs4dPLFp43pdl1SlSCSSMm+VFYO/kjIy1MfGzzug+Vs1FG3W5sb4LqQLdp+4Do8vf8Tek9exc1In1K1ZTYeVkibk5eVheuiXSE5K1HUppGELv/kaly9dwpr1mxA2fSaiV0Tht0O/6LosKiOZTIYePXrg9OnTAIApU6bA3t5eZRs8eHCxj8/KylLp6+HhUaoaONVfCTWrZ4H1n3dQWZPS1t4GBQWFWLLvHwDAN99fRGCPFmjzjjV+OH1T+4WSRlxPSsSMsEmQy3VdCWladnY2vt+zC8tXrYFD8xZwaN4CSYkJ2LF9K97v5qPr8qoEbY7c8/LyEBwcjISEBEXb1KlTERwcrLh99+5d+Pn5lRj8iYmJsLS0xP79+xVtenqlG8NzxF8JeTavjb/+SUWnaQeU2h88yYOVuTF6tnkLANCj9VswMzHEP7ce6qJM0pBzsWfh1toDazdt03UppGH/XruK/Px8uLi4KtpcW7nhYnwcCgsLdVhZFSIpx1YKiYmJ8PX1xa1bt5TazczMYG1trdiWLVsGHx8fdOnSpdj9JCcn4+2331Z6jJWVValqeSNG/A8fPoRMJoOJiQnMzc11Xc4bb+1v14ptP3ElDdG/XMGWid4olMthoK+HMcuPIyH1kZYrJE3q69tf1yWQlmSkp8PSsgYMpVJFm5VVLeTl5SEzMxM1a9bUYXVVg7ZG/DExMfDw8MCECRPg4uJSbJ+TJ0/izJkzOHToUIn7SUxMRKNGjcpVi86C/9dff8WWLVsQHx+PvLw8RbuxsTFatmyJIUOGlPiOh4pnamyARjZm+GrXBRw8dxsft2mIyGFtcCYhHf+mZOm6PCIqpZzcHEhfCH0AitvPZDJdlFTllCf4ZTIZZC/9HKRSqcrPDAAGDhz42v2tXr0avXv3Rp06JS/KTkpKQn5+Pvr164e0tDS4u7sjNDQUNjY2atetk+DfsGEDoqKiMHLkSAQEBMDKygpSqRQymQwZGRk4e/YspkyZgs8//xx+fn66KLFSmvCxIyQSYP6eOABA3PUHcH/HGuM/dMAXa0/puDoiKi0jIyOVYCm6bWxsrIuSqpzyBH90dDSioqKU2gICAhAYGFjqfd2+fRunTp3C1KlTX9kvOTkZNWvWRGhoKORyORYtWoSxY8di165d0NfXV+tYOgn+9evXY8GCBcWO6Bs3bgwPDw/Y29sjPDycwV8KLm9b4eJN5fP5cdf/Q/MGNUp4BBG9yWxsbJGZ+RD5+fkwMHj+z3VGRjqMjY1hxtOiOjdmzBgMGzZMqa240b46Dh06BAcHBzRp0uSV/Q4cOACJRKJ447d06VJ4enoiLi4OrVq1UutYOgn+3Nxc1K9f/5V9bG1t8fjxYy1VVDWkPsxGs/oWSm1N61ngZjpfR6LKyL6ZAwwMDBAfdwGt3NwBAOfPxaJFS8dSr+Sm4pVnxF/StH5ZHDt2DJ07d35tPxMTE6XbVlZWsLS0RFpamtrH0slvzvvvv48pU6bg7NmzyM/PV7qvsLAQ586dQ1hYGLp166aL8iqtTb8noJtrffh3b45GNqYY/2FzvO9SD2sOFb8YkIjebCYmJvjo416YO2cWLl2Mx+9HDmPzxvUYOKj4j3pRGWhpVf+ryOVyXLx48bUj9idPnqB169Y4der/Tt2mpaXh4cOHsLOzU/t4Ohnxz5o1CwsWLMCIESNQUFAAS0tLxTn+zMxMGBgY4OOPP0ZoaKguyqu0ziSkY+A3RzHtU1dM/9QVCSlZ6BNxGFfuZOq6NCIqoy8nh2LenFkYOWwITM1MMc4/EF3e76rrsqqMN+EKfHfv3sXTp0+LnebPzc3F48ePYW1tDVNTU7i5uSEiIgLh4eHQ19fHvHnz4OXlBXt7e7WPJ5HLdXcZkJycHFy9ehXp6enIycmBkZERbG1t4eDgUK6FK6a+GyuuSHrj3d7IdSAiMZGqt4CJqgZjDQ9PrYftLPNj0zd8WqbH2dvbY/PmzYor7sXFxcHX1xcXL15UOXWwd+9ehIaG4tq15zO3WVlZmD9/Po4ePQqZTIbOnTtj2rRpsLCwUDlOSXQa/JrC4BcLg18sDH6xaDr4bYZ/V+bH3l/vW4GVaA9XhxAREQnkjbhyHxERkU7o/hS/1jH4iYhIWG/C4j5tY/ATEZGwGPxEREQCYfATEREJRMTg56p+IiIigXDET0RE4hJvwM/gJyIicYk41c/gJyIiYTH4iYiIBCJi8HNxHxERkUA44iciInGJN+Bn8BMRkbhEnOpn8BMRkbAY/ERERAJh8BMREQlExODnqn4iIiKBcMRPRETiEm/Az+AnIiJxiTjVz+AnIiJhMfiJiIgEImDuM/iJiEhcIo74uaqfiIhIIBzxExGRsAQc8HPET0RE4pJIJGXeykImk6FHjx44ffq0om3u3Lmwt7dX2rZs2VLiPjZu3AgvLy+4uroiLCwMOTk5paqBI34iIhKWNkf8eXl5CA4ORkJCglJ7UlISgoOD0bt3b0Wbqalpsfs4dOgQoqKiEBkZCSsrK4SGhiIyMhIzZsxQuw6O+ImISFh6epIyb6WRmJgIX19f3Lp1S+W+pKQkNG/eHNbW1orNxMSk2P1s3rwZQ4YMgbe3N5ycnDB79mzs2bOnVKN+Bj8REQlLIin7VhoxMTHw8PDAzp07ldqfPHmCtLQ0NGrU6LX7KCgowMWLF+Hu7q5oc3FxwbNnz3D16lW1a+FUPxERURnIZDLIZDKlNqlUCqlUqtJ34MCBxe4jKSkJEokEq1atwl9//QVLS0sMGzZMadq/yKNHj5CXlwcbGxtFm4GBASwtLXHv3j2162bwExGRsMrzOf7o6GhERUUptQUEBCAwMFDtfSQnJ0MikcDOzg6DBg3CmTNnMH36dJiamuL9999X6pubmwsAKm8spFKpyhuQV2HwExGRsMqzuG/MmDEYNmyYUltxo/1X6dWrF7y9vWFpaQkAaNasGW7cuIHt27erBL+RkREAqIS8TCYrcU1AcXiOn4iIhFWej/NJpVKYmpoqbaUNfolEogj9InZ2dkhLS1Ppa2lpCSMjI2RkZCja8vPzkZmZCWtra7WPyeAnIiJhaftz/C9bsmQJhg4dqtR29epV2NnZqfTV09ODo6MjYmNjFW0XLlyAgYEBmjVrpvYxGfxERCQsba3qL4m3tzfOnDmDdevW4datW9i2bRt++OEHDB8+HMDz8/rp6emK/gMHDsS6detw+PBhxMfHY9asWfD19S3VVD/P8RMREemIk5MTlixZgqVLl2LJkiWoV68evv32W7i6ugIAfv75Z4SGhuLatWsAgO7du+Pu3buYMWMGZDIZunbtikmTJpXqmBK5XC6v8GeiY6a+G3VdAmnR7Y1+ui6BtMhEqq/rEkiLjDU8PHWd/XuZH3t+ZqcKrER7OOInIiJhifglPQx+IiISVkUt0qtMGPxERCQsAXOfwU9EROISccTPj/MREREJhCN+IiISloADfgY/ERGJS8Sp/ioZ/Bnbhuq6BNKiGq0DdF0CadHDM1Gv70SkJgFzv2oGPxERkTo44iciIhKIgLnPVf1EREQi4YifiIiExal+IiIigQiY+wx+IiISF0f8REREAmHwExERCUTA3OeqfiIiIpFwxE9ERMLiVD8REZFABMx9Bj8REYmLI34iIiKBCJj7DH4iIhKXnoDJz1X9REREAuGIn4iIhCXggJ/BT0RE4hJxcR+n+omISFh6krJvZSGTydCjRw+cPn1a0XbhwgX0798frq6u6NatG3bt2vXKfbi7u8Pe3l5pe/r0qdo1cMRPRETC0uaIPy8vD8HBwUhISFC0paenY9SoURgwYADmz5+Pf/75B6GhobC2tkbHjh1V9pGWlobHjx/j8OHDMDY2VrRXq1ZN7ToY/EREJCxt5X5iYiKCg4Mhl8uV2g8fPoxatWph4sSJAIBGjRrh9OnT2LdvX7HBn5SUBGtrazRo0KDMtTD4iYiIykAmk0Emkym1SaVSSKVSlb4xMTHw8PDAhAkT4OLiomj38vKCg4ODSv8nT54Ue8zExES8/fbb5aqbwU9ERMKSoOxD/ujoaERFRSm1BQQEIDAwUKXvwIEDi91H/fr1Ub9+fcXt//77DwcOHCh2H8DzEX9OTg78/Pxw/fp1ODg4ICwsrFRvBhj8REQkrLIu0gOAMWPGYNiwYUptxY321ZWbm4vAwEDUqlULn376abF9kpOTkZWVhYkTJ8LU1BRr1qzB0KFDceDAAZiamqp1HAY/EREJqzyL+0qa1i+Lp0+fYvz48bhx4wa2bdsGExOTYvutW7cOz549Q/Xq1QEA33zzDTp06ICjR4/io48+UutYDH4iIhLWm/Ax/idPnmDkyJG4desWNm3ahEaNGpXY9+U3G0ZGRqhfvz7S0tLUPh4/x09ERMLSk0jKvFWEwsJCBAQE4M6dO/jf//6Hd955p8S+crkcXbp0wd69exVt2dnZuHnzJuzs7NQ+Jkf8REREOrJ7926cPn0aK1euhLm5OdLT0wEAhoaGsLS0hEwmQ1ZWFmrWrAl9fX107NgRy5YtQ7169VCzZk0sWbIEtWvXRocOHdQ+JoOfiIiEpeup/kOHDqGwsBBjxoxRam/Tpg3+97//4fz58xg8eDCOHDmC+vXrY9KkSTAwMEBwcDCePHmCtm3bYvXq1dDX11f7mBL5y1cTqAJy83VdAWlTjdYBui6BtOjhmajXd6Iqw1jDw9N+G86V+bG7h7WqwEq0hyN+IiISlq5H/LrA4CciImFV1CK9yoTBT0REwhIv9vlxPiIiIqFwxE9ERMLS5tfyvikY/EREJKzyXKu/smLwExGRsDjiJyIiEoiAuc/gJyIicYk44ueqfiIiIoGUKfgLCgrwxx9/YOPGjXj06BHi4uLw+PHjiq6NiIhIo/QkZd8qq1JP9aempmLEiBHIzMxEVlYWOnfujLVr1+L8+fNYt24d7O3tNVEnERFRheNUvxrmzJkDNzc3HDt2DFKpFACwcOFCvPvuu5g7d26FF0hERKQpknJslVWpg//s2bMYPny40lcAGhoaYvz48bh06VKFFkdERKRJehJJmbfKqtTBb2xsjP/++0+l/fr16zA1Na2QooiIiEgzSh38/fv3x4wZM/DHH38AeB74e/bswfTp09GvX7+Kro/UkJeXh5nTw+DZ1h2dO3hi08b1ui6JKlBdawtsixyBu38sQNKhuVgQ3AdGUuXlOXYNauHByYU6qpA0iX/fmiWRlH2rrEq9uM/f3x/m5uaYNWsWcnJyMHr0aFhZWWHo0KEYMWKEJmqk11j4zde4fOkS1qzfhJSUFEwPC0HdOnXxfjcfXZdGFWDbNyPx8FE2ugxfhJoW1bFq1mcoKChE2OIfAAD1bS2xd8lYmBhLdVsoaQT/vjVLxMV9ZbqAj5+fH/z8/JCdnY2CggKYmZlVdF2kpuzsbHy/ZxeWr1oDh+Yt4NC8BZISE7Bj+1b+w1AFNG1kCw+nt9GwcyjuP3j+kdnwlQcQMaE3whb/gI86OiFq+gDcy8jScaWkCfz71jwBc7/0wf/DDz+88v5evXqVsRQqi3+vXUV+fj5cXFwVba6t3LB29SoUFhZCT4/XaKrM0jIe4aPxyxWhX8Tc1AQA4OPVAnNW7Me/N+7j17Wf66JE0iD+fWteZV6kV1alDv6lS5cq3S4oKMB///0HAwMDODk5Mfi1LCM9HZaWNWAo/b9pXiurWsjLy0NmZiZq1qypw+qovLKe5ODwySuK2xKJBGM/fQ9HY64BAPzDtwMAvNze0Ul9pFn8+9Y8AXO/9MH/+++/q7Q9ffoUM2bM4MV7dCAnN0dxPYUiRbefyWS6KIk06KsvesGlWQN4DorUdSmkBfz7Jk2okHmi6tWrIzAwEBs2bKiI3VEpGBkZQfbSPwBFt42NjXVREmnI3KCPETCwI4ZP24zLSam6Loe0gH/fmieRSMq8VVYV9u18V69eRWFhodr9z5w5o3bf1q1bl6UkIdjY2CIz8yHy8/NhYPD8x5mRkQ5jY2OYmZvruDqqKAtDPsGofp4YPm0zfjhyQdflkJbw71vzRFwlUerg9/PzU3mn8/TpU1y7dg1Dhw5Vez9z5sxBYmIiAEAul5fYTyKR4MqVKyXeLzr7Zg4wMDBAfNwFtHJzBwCcPxeLFi0dufCniggb/QFG9vXE4NAN+P7wBV2XQ1rEv2/Nq8wj97IqdfB7eHiotEmlUnz55Zdo166d2vvZs2cPJk6ciDt37mDnzp0wMjIqbSkEwMTEBB993Atz58zCnLlf4f79+9i8cT1mz43QdWlUAezftkXoKB9EbvgVf59Pgq3V/310Nu0/fiNmVce/b83T9rfsyWQy9OnTB9OnT1fk6e3btzF9+nRcuHABdevWRVhYGDw9PUvcx/79+7F48WKkp6fD09MT4eHhpVroWergz8zMxODBg/HWW2+V9qFKpFIpFi5cCF9fXyxevBghISHl2p/IvpwcinlzZmHksCEwNTPFOP9AdHm/q67LogrwUUcnGBjoI3TUBwgd9YHSfSauATqqirSJf9+apc3gz8vLQ3BwMBISEhRtcrkc/v7+aNq0Kfbs2YPDhw8jICAAP//8M+rWrauyj/j4eEydOhWzZ89Gs2bNMG/ePISGhiI6OlrtOiTyV82zF6NNmzbYu3cv6tevX5qHlSgpKQkxMTEYMGBAhewPAHLzK2xXVAnUaM0AFMnDM1G6LoG0yLjCVqIVb+JPV8v82IU9m6ndNzExEcHBwZDL5bh27Ro2b94MDw8PnDx5EuPHj8eJEydQrVo1AMDQoUPh5uaGwMBAlf1MnjwZenp6mD9/PgAgNTUV3t7e+O2339CgQQO1ain1SaKhQ4di9uzZOHHiBK5fv46UlBSlrbQaN25coaFPRESkLm2t6o+JiYGHhwd27typ1B4XF4fmzZsrQh8A3NzccOHChWL3ExcXB3d3d8XtOnXqoG7duoiLi1O7FrXeS505cwaurq4wMDBQXMDn2LFjAP5vYYRcLudCPCIiqlTKM9Uvk8lUPm4plUpVrr0AAAMHDix2H+np6bCxsVFqs7Kywr1794rtf//+/VL1L45awT948GAcP34cVlZWOHLkiNo7JyIiepOVZ1F/dHQ0oqKUTz0FBAQUO0Vfkpyc4i/S9PIbiiK5ubml6l8ctYL/xWUA9erVU3vnREREb7LyXKt/zJgxGDZsmFJbcaP9VzEyMkJmZqZSm0wmK/ECTSVd1MnExETtY6q9bELEzzoSEVHVVp6rIZQ0rV8atra2imvaFMnIyFCZzn+xf0ZGhkp/a2trtY+pdvD37dtXrQtG8FQAERGRepydnbF69Wrk5uYqRvmxsbFwc3MrsX9sbCz69OkD4Pmq/tTUVDg7O6t9TLWDf9iwYTAzM3t9RyIiokpC15PZbdq0QZ06dRAaGorx48fj6NGjiI+PR0TE84s0yWQyZGVloWbNmtDX18eAAQPg5+cHFxcXODo6Yt68eejYsaPaH+UD1Ax+iUSC7t27w8rKqmzPjIiI6A1UnnP8FUFfXx8rVqzA1KlT0adPHzRs2BDLly9XXLzn/PnzGDx4MI4cOYL69evD1dUVc+bMwdKlS5GVlYX27dsjPDy8VMdU6wI+zZo1w4kTJypN8PMCPmLhBXzEwgv4iEXTF/CZcSjh9Z1KMKfbOxVYifao9ZL27t2b19InIqIqR9vX6n8TqBX8RecaiIiIqhJdT/XrAr/XkYiISCAaPntCRET05hJwwM/gJyIicfEcPxERkUAkEC/5GfxERCQsjviJiIgEImLwc1U/ERGRQDjiJyIiYYn4zbMMfiIiEpaIU/0MfiIiEpaAA34GPxERiUvES/Yy+ImISFgiTvVzVT8REZFAOOInIiJhCTjTz+AnIiJx6fGSvUREROLgiJ+IiEggIi7uY/ATEZGwRPw4H1f1ExERCYQjfiIiEpaAA34GPxERiUvEqX4GPxERCUvA3GfwExGRuERc6MbgJyIiYUm0MOTfu3cvQkNDiz321atXVdp79uyJa9euKbXt27cPTZs2rZB6GPxEREQa9OGHH8LLy0txOz8/H0OGDEHHjh1V+hYUFODGjRvYsmULGjVqpGivUaNGhdXD4CciImFp4xS/sbExjI2NFbejo6Mhl8vx5ZdfqvS9c+cOnj17BicnJxgZGWmkHgY/EREJS9ur+jMzM7FmzRrMnTsXUqlU5f7ExETUqVNHY6EPiLmugYiICMDzEX9ZN5lMhidPnihtMpnslcfbvn07bGxs4OPjU+z9SUlJMDQ0xJgxY9C+fXsMGjQI8fHxFfJcizD4iYhIWBJJ2bfo6Gi4ubkpbdHR0SUeSy6XY9euXRg0aFCJfa5fv46srCx88sknWL16NRo3bowhQ4YgNTW14p6zXC6XV9je3hC5+bqugLSpRusAXZdAWvTwTJSuSyAtMtbwCent5++W+bF9W1irjPClUmmxU/gAEB8fjwEDBuDvv/+GhYVFsX3y8/ORm5sLU1NTAM/fLPTs2RPdu3fH2LFjy1zri3iOn4iIqAxeFfLFOXbsGNzd3UsMfQAwMDBQhD7w/CN/dnZ2SEtLK1etL+JUPxERCUuvHFtpxcfHo1WrVq/s4+fnh6io/5vVKiwsxLVr12BnZ1eGIxaPI34iIhKWNi7gUyQhIQE9e/ZUaisoKMCDBw9gYWEBqVSKTp06Yfny5XBwcMDbb7+NzZs34/Hjx+jdu3eF1cHgJyIiYWnzw3wZGRkwNzdXaktNTUXnzp2xefNmeHh4YOjQocjLy8PcuXORkZEBZ2dnbNiwQWn6v7y4uI8qPS7uEwsX94lF04v7dseVfbV8P+c6FViJ9nDET5Veyoklui6BtOijVad0XQJp0W8BbTW6fxEXuon4nImIiITFET8REQlLm4v73hQMfiIiEpZ4sc/gJyIigQk44GfwExGRuPQEHPMz+ImISFgijvi5qp+IiEggHPETEZGwJJzqJyIiEoeIU/0MfiIiEhYX9xEREQmEI34iIiKBiBj8XNVPREQkEI74iYhIWFzVT0REJBA98XKfwU9EROLiiJ+IiEggXNxHREREVRpH/EREJCxO9RMREQmEi/uIiIgEwhE/ERGRQERc3MfgJyIiYQmY+1zVT0REpGm//fYb7O3tlbagoKBi+/7999/o0aMHnJ2dMXjwYNy+fbtCa+GIn4iIhKWnpbn+xMREeHt7Izw8XNFmZGSk0i8lJQX+/v4IDAyEl5cXli9fjvHjx+Onn36CpIJqZfATEZGwtDXVn5SUhKZNm8La2vqV/Xbt2oWWLVti+PDhAICIiAi0b98eMTEx8PDwqJBaONVPRETikpRjK4WkpCQ0atTotf3i4uLg7u6uuG1iYoIWLVrgwoULpTvgK3DET0REwirPx/lkMhlkMplSm1QqhVQqVWqTy+W4fv06jh8/jujoaBQUFMDHxwdBQUEqfdPT02FjY6PUZmVlhXv37pW5zpcx+ImISFjlOW0eHR2NqKgopbaAgAAEBgYqtaWkpCAnJwdSqRSLFy/GnTt3MHfuXOTm5mLatGlKfYv6vUgqlaq8wSgPBj8REVEZjBkzBsOGDVNqezm0AaBevXo4ffo0LCwsIJFI4ODggMLCQkyaNAmhoaHQ19dX9DUyMlIJeZlMBnNz8wqrm8FPRETCKs/ivuKm9UtiaWmpdLtx48bIy8tDVlYWatasqWi3tbVFRkaGUt+MjAw4ODiUo1JlXNxHRETi0sLivmPHjsHDwwM5OTmKtitXrsDS0lIp9AHA2dkZsbGxits5OTm4fPkynJ2dy/DkisfgJyIiYUnK8Z+6XF1dYWRkhGnTpiE5ORl//vknvv76a4wcORIFBQVIT09XTO/37dsX586dw+rVq5GQkIDQ0FDUr1+/wj7KBzD4iYhIYBJJ2Td1mZqaYt26dXjw4AH69u2LqVOn4tNPP8XIkSORmpoKT09PnD9/HgBQv359LFu2DHv27EG/fv2QmZmJ5cuXV9jFewBAIpfL5RW2tzdEbr6uKyBtypEV6LoE0iLf9Wd0XQJp0W8BbTW6/3M3HpX5sa0aVdyCO23iiJ+IiEggXNVPRETiEvDr+Rj8REQkrPJcua+yYvATEZGwtPTlfG8UBj8REQlLwNxn8BMRkcAETH6u6iciIhIIR/xERCQsLu4jIiISiIiL+zjVXwXk5eVh5vQweLZ1R+cOnti0cb2uSyItkMlkGNivJ2LPxui6FNIAQz0JVg9wglO9/7s6nPtbFljV3xH7x7bBqv6OaP2Wpe4KrCK08B09bxyO+KuAhd98jcuXLmHN+k1ISUnB9LAQ1K1TF+9389F1aaQheXl5mBE2CclJibouhTTAUF+CsK7v4G2raoq2uhZGmPlBU2w4dRt/X3+I9nY1MKt7UwzfEoe0x3k6rLaSq8wJXkYM/kouOzsb3+/ZheWr1sCheQs4NG+BpMQE7Ni+lcFfRV1PSsSMsEmoet+yQQDwVg0ThHVtohJItUyN8PM/97E37h4AYM+FexjoXh/2ttUZ/OUg4jl+TvVXcv9eu4r8/Hy4uLgq2lxbueFifBwKCwt1WBlpyrnYs3Br7YG1m7bpuhTSAKd65rhw9xE+3/2PUnv83UdYefwmAEBfTwIfB2sY6ktwLe2pLsqkSowj/kouIz0dlpY1YCiVKtqsrGohLy8PmZmZqFmzpg6rI03o69tf1yWQBu2/lPbK++taGGH9Zy7Q15Ng7d+3ONovJy7u0xKZTIbIyEh06NABrVq1QkBAAJKSkpT6ZGRkwMHBQRflVSo5uTmQvhD6ABS3n8lkuiiJiDQoMycf/t9dxNI/rmNwm/rwbMw39+Uh4uI+nQT/woULcfjwYUyePBlz5sxBRkYG+vbti8OHDyv1k/Mk5msZGRlB9lLAF902NjbWRUlEpEHZsgIkZWRj36U0HLx8H72cauu6pMpNwOTXSfAfPHgQX331Fbp3744ePXpg+/btGDBgAL744gscPHhQ0U8i4hxMKdnY2CIz8yHy8/MVbRkZ6TA2NoaZufkrHklElUnDmiZoWcdMqe3mgxyYG/OMbXlIyvFfZaWT35jc3FxYWloqbkskEoSEhEBPTw+TJk2CgYEBXF1dS94BKdg3c4CBgQHi4y6glZs7AOD8uVi0aOkIPT2u3SSqKto2qoGuDtYYsTVO0faOTXXcfpijw6oqPxHHlzpJBg8PD3z99dd48OCBUvukSZPw6aefYsKECdi2jSuW1WFiYoKPPu6FuXNm4dLFePx+5DA2b1yPgYMG67o0IqpAR65lwKqaIUa2ewv1LIzR09EWne1rYXvsXV2XRpWMToJ/6tSpyMzMRPv27XHixAml+6ZPn46xY8ciOjpaF6VVSl9ODkXz5i0wctgQfDV3Nsb5B6LL+111XRYRVaCMpzKE/nQVTvXMsKq/I3o62mLuwQQkpmfrurRKTcBT/JDIdbiCLjk5GdbW1jAzM1O5LykpCUeOHMHo0aNLvd/c/Nf3oaojR1ag6xJIi3zXn9F1CaRFvwW01ej+/00r+xunprbVXt/pDaTTVSF2dnYl3te4cWM0btxYi9UQEZFoKvMivbLiclAiIhKWiIv7GPxERCQsAXOf1+onIiISCYOfiIjEpaVl/WlpaQgKCkKbNm3g5eWFiIgI5OUV/z0L48aNg729vdJ29OjRMj294nCqn4iIhKWNxX1yuRxBQUEwNzfH1q1bkZWVhbCwMOjp6SEkJESlf1JSEiIjI9GuXTtFm4WFRYXVw+AnIiJhaWNxX3JyMi5cuIATJ06gVq1aAICgoCAsWLBAJfhlMhnu3LkDR0dHWFtba6QeBj8REQlLG4v7rK2tsXbtWkXoF3ny5IlK3+TkZEgkEjRo0EBj9fAcPxERiasc5/hlMhmePHmitL38bakAYG5uDi8vL8XtwsJCbNmyBW3bql6cKDk5Gaamppg8eTI8PT3Rr18//PnnnxX6lBn8REREZRAdHQ03NzelTZ3LzUdGRuLy5cuYMGGCyn3JycnIzc2Fp6cn1q5diw4dOmDcuHG4ePFihdWt00v2agov2SsWXrJXLLxkr1g0fcnem/8Vv7JeHXXMJCojfKlUCqlUWuJjIiMjsWHDBixatAjdunVTub+wsBCPHz9WWsw3duxYWFtbIzw8vMy1vojn+ImISFjlWdz3upB/WXh4OLZv347IyMhiQx8A9PT0VFbw29nZITExseyFvoTBT0REwtLWlfuioqKwY8cOLFy4ED4+PiX2mzJlCiQSCSIiIhRtV69eRdOmTSusFp7jJyIiYUkkZd/UlZSUhBUrVmDUqFFwc3NDenq6YgOA9PR05ObmAgA6deqEffv24YcffsDNmzcRFRWF2NhYDBo0qMKeM0f8REQkMM2P+Y8cOYKCggKsXLkSK1euVLrv2rVr8PT0REREBPr06YOuXbti5syZWLlyJVJSUvDOO+9g7dq1qF+/foXVw8V9VOlxcZ9YuLhPLJpe3HfnoerH79RVv4b65/ffJBzxExGRsPi1vERERAIRMPcZ/EREJC6O+ImIiASijW/ne9Mw+ImISFzi5T4/x09ERCQSjviJiEhYAg74GfxERCQuLu4jIiISCBf3ERERiUS83GfwExGRuATMfa7qJyIiEglH/EREJCwu7iMiIhIIF/cREREJRMQRP8/xExERCYQjfiIiEhZH/ERERFSlccRPRETC4uI+IiIigYg41c/gJyIiYQmY+wx+IiISmIDJz8V9REREAuGIn4iIhMXFfURERAIRcXEfp/qJiEhYknJspZGXl4ewsDC4u7vD09MT69evL7Hv5cuX8cknn8DZ2Rl9+/bFpUuXSvu0XonBT0RE4tJS8n/99de4dOkSNm3ahJkzZyIqKgq//PKLSr/s7GyMHj0a7u7u2Lt3L1xdXTFmzBhkZ2eX+Sm+jMFPRETCkpTjP3VlZ2dj165dmDp1Klq0aIH3338fI0eOxNatW1X6/vzzzzAyMsLkyZPRuHFjTJ06FdWrVy/2TUJZMfiJiIg06OrVq8jPz4erq6uizc3NDXFxcSgsLFTqGxcXBzc3N0j+/+IDiUSCVq1a4cKFCxVWDxf3ERGRsMqzuE8mk0Emkym1SaVSSKVSpbb09HTUqFFDqb1WrVrIy8tDZmYmatasqdS3SZMmSo+3srJCQkJC2Qt9SZUMfuMq+ayoJMYG+rougbTot4C2ui6BqpDy5MWyZdGIiopSagsICEBgYKBSW05OjsqbgaLbL79xKKnvy/3KgxFJRERUBmPGjMGwYcOU2l4ObQAwMjJSCe6i28bGxmr1fblfeTD4iYiIyqC4af3i2Nra4uHDh8jPz4eBwfPYTU9Ph7GxMczNzVX6ZmRkKLVlZGTAxsamwurm4j4iIiINcnBwgIGBgdICvdjYWDg6OkJPTzmGnZ2dcf78ecjlcgCAXC7HuXPn4OzsXGH1MPiJiIg0yMTEBL169cKsWbMQHx+Pw4cPY/369Rg8eDCA56P/3NxcAICPjw8ePXqEefPmITExEfPmzUNOTg4++OCDCqtHIi96W0FEREQakZOTg1mzZuHXX3+FqakpRowYgaFDhwIA7O3tERERgT59+gAA4uPjMXPmTCQlJcHe3h6zZ89G8+bNK6wWBj8REZFAONVPREQkEAY/ERGRQBj8REREAmHwVwGl+bpHqjpkMhl69OiB06dP67oU0qC0tDQEBQWhTZs28PLyQkREBPLy8nRdFlVivIBPFfDi1z2mpKQgJCQEdevWhY+Pj65LIw3Jy8tDcHBwhV6/m948crkcQUFBMDc3x9atW5GVlYWwsDDo6ekhJCRE1+VRJcXgr+SKvu5xzZo1aNGiBVq0aIGEhARs3bqVwV9FJSYmIjg4GPxATtWXnJyMCxcu4MSJE6hVqxYAICgoCAsWLGDwU5lxqr+SK83XPVLVEBMTAw8PD+zcuVPXpZCGWVtbY+3atYrQL/LkyRMdVURVAUf8lVxpvu6RqoaBAwfqugTSEnNzc3h5eSluFxYWYsuWLWjblt9QSGXH4K/kSvN1j0RUuUVGRuLy5cvYvXu3rkuhSozBX8mV5useiajyioyMxKZNm7Bo0SI0bdpU1+VQJcbgr+RK83WPRFQ5hYeHY/v27YiMjES3bt10XQ5VclzcV8mV5useiajyiYqKwo4dO7Bw4UJ0795d1+VQFcBkqORe93WPRFR5JSUlYcWKFRg1ahTc3NyQnp6u2IjKilP9VUBoaChmzZqFIUOGwNTUFIGBgejatauuyyKicjpy5AgKCgqwcuVKrFy5Uum+a9eu6agqquz4tbxEREQC4VQ/ERGRQBj8REREAmHwExERCYTBT0REJBAGPxERkUAY/ERERAJh8BMREQmEwU9ERCQQBj9RBenUqRPs7e0VW4sWLeDj44ONGzdW2DH8/PywbNkyAMCUKVMwZcqU1z5GJpPhu+++K/Mx9+7di06dOpX58UT0ZuEle4kqUFhYGD788EMAQH5+Pk6dOoWpU6fC0tISvXr1qtBjTZ06Va1+Bw4cwKpVq+Dr61uhxyeiyokjfqIKZGZmBmtra1hbW6NOnTro3bs32rVrh19//VUjxzIzM3ttP16Vm4hexOAn0jADAwMYGhrCz88P4eHh6Ny5Mzp27IgnT54gNTUVY8eOhbOzMzp16oSoqCgUFBQoHvvbb7+hW7ducHFxwZw5c5Tue3mq/8cff4SPjw+cnZ3Rv39/XL58GadPn0ZoaCju3r0Le3t73LlzB3K5HMuXL4enpyfc3d0xduxYpKSkKPaTlpaGkSNHwsXFBb1798atW7e080IRkVYw+Ik05NmzZ/j1119x4sQJdO7cGcDz8+WRkZGIiopC9erVERAQACsrK3z//feIiIjAvn37sGrVKgBAYmIivvjiCwwYMAB79uxBfn4+YmNjiz3WsWPHMHXqVAwZMgQ//fQTWrZsiTFjxsDV1RVhYWGoXbs2jh8/jjp16mDLli3Yt28fvv32W+zcuRNWVlYYPnw4nj17BgD4/PPPUVhYiF27dmHUqFHYtGmTdl4wItIKnuMnqkAzZ85EeHg4ACA3NxfGxsYYMmQIevbsiV27dqFjx45o1aoVAODkyZNISUnBrl27oKenBzs7O4SEhCA0NBT+/v7Ys2cP3N3dMXToUADA9OnTcfTo0WKPu3PnTvTo0QMDBgwAAEyePBmGhobIysqCmZkZ9PX1YW1tDQBYu3YtZs6cCQ8PDwDAnDlz4OnpiWPHjqFBgwY4f/48jh49irp16+Kdd97BpUuX8Msvv2jyZSMiLWLwE1WgoKAgdO3aFQBgZGQEa2tr6OvrK+6vV6+e4v+TkpKQmZkJNzc3RVthYSFyc3Px8OFDJCUlwcHBQXGfoaGh0u0XXb9+Hf3791fclkqlCAkJUen39OlT3Lt3DxMmTICe3v9N+OXm5uLGjRvIy8uDpaUl6tatq7jP0dGRwU9UhTD4iSqQlZUVGjZsWOL9RkZGiv/Pz8+HnZ0dVqxYodKvaNHeywvzDA0Ni92vgYF6f8pFawSWLFmCt99+W+k+CwsLnDx5Uu1jElHlxHP8RDry9ttvIyUlBTVr1kTDhg3RsGFD3LlzB0uXLoVEIsE777yDixcvKvoXFhbi6tWrxe6rYcOGSvcVFBSgU6dOiI2NhUQiUbSbm5vDysoK6enpimPWqVMHkZGRuH79Opo2bYqsrCzcvHlT8ZgrV65o4NkTka4w+Il0xNPTE/Xq1cOkSZNw7do1nD17FtOnT4eJiQn09fXh6+uLS5cuYeXKlUhOTsaCBQuUVt+/yM/PDz/99BO+//573Lx5ExEREZDL5WjRogVMTEyQlZWFGzduID8/H0OHDsXixYvx+++/48aNG5g2bRrOnTsHOzs7NG7cGO3atUNYWBiuXr2Kw4cPY8uWLVp+ZYhIkxj8RDqir6+PlStXorCwEL6+vggMDESHDh0wbdo0AM9H8StXrsSBAwfQq1cvpKeno0OHDsXuq3Xr1pg5cyaWL1+Onj174sqVK1i1ahWMjY3Rtm1bNGzYEB999BGuXLmCESNGoF+/fpgxYwZ69eqFlJQUrFu3DhYWFgCARYsWoUaNGujfvz8WLlwIPz8/rb0mRKR5Ejmv7kFERCQMjviJiIgEwuAnIiISCIOfiIhIIAx+IiIigTD4iYiIBMLgJyIiEgiDn4iISCAMfiIiIoEw+ImIiATC4CciIhIIg5+IiEgg/w+1C+1C9CmSuQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 600x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAf4AAAGHCAYAAABRQjAsAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABIgUlEQVR4nO3deViUVf8/8PcADqAICOKKqZgiorIZ6FcIUFNcc09NFHLBZDEzRcB9eVxwF1Tc5dGUTCuXstLHysw0SSQflwQ0F5QghUSBCZjfH/6Yx3EGHWAW4bxfXfd1NWfO3POZGYf3nHOfuUcil8vlICIiIiEYGboAIiIi0h8GPxERkUAY/ERERAJh8BMREQmEwU9ERCQQBj8REZFAGPxEREQCYfATEREJhMFPRAo8n1f1xtePNMHg14Pff/8dU6dORdeuXdG+fXt4e3vjgw8+wNWrV5X6BQYGIjAwsNz9rF+/Ho6Ojrout8pmzpwJR0dHlc3NzQ39+/fHjh079FpPt27dMHPmTL3e5/P3r+75KNsePHhgsNqedf36dYwcOVKjvkVFRdi5cyeGDBkCDw8PeHp6YsSIEfj88891Fj7379/Hu+++iw4dOqBLly4oKCjQyn5f9r7TpsDAQDg6OmLEiBHl9pk6dSocHR0r/G82OTkZEydOfGm/6vJ3hHTHxNAF1HTXr1/HO++8A1dXV8yaNQu2tra4f/8+du/ejeHDhyMxMRGurq6GLlPr7OzsEBcXp7gsl8uRk5ODffv2YenSpTA1NcWoUaMMWKF++fr6YvLkyWqvs7S01HM16h07dgwXLlx4ab+cnByMHz8e9+7dQ2BgIDp27IjS0lKcPHkSM2fOxPnz57Fw4UJIJBKt1rdr1y6kpKQgNjYWDRs2hLm5uVb2O3fuXK3sR1NGRkZISUnB/fv30ahRI6Xrnjx5gpMnT1Zqv/v370d6evpL+w0bNgw+Pj6Vug+qGRj8OrZjxw7Uq1cPW7ZsgYnJ/57uHj16ICAgABs2bMDmzZsNWKFuSKVStR9o/Pz80KNHDxw8eFCo4LexsakxH/AiIyNx//59JCUloUWLFop2Pz8/NGnSBKtWrYK/vz+6d++u1fvNzc1FgwYN0KdPH63u9/XXX9fq/l6mXbt2SEtLw7FjxxAUFKR03cmTJ2Fubq7TD4ONGjVS+cBBYuFUv47l5ORALpejtLRUqb127dqIjo5G7969y73tqVOn0L59e8TExJQ7fXr8+HEMHjwYHTp0QNeuXbFo0SI8efJEpc+oUaPg5uaG9u3bIyAgAHv27FFcf/bsWTg6OmLfvn3w9/eHu7s7Tp8+jZkzZyIoKAgHDhxAr1690L59e7z99tv44YcfKv181KpVC+bm5kqjwcLCQqxcuRI9e/ZE+/bt4e7ujuDgYFy5ckXRR9Narl69iuDgYLi5ucHf3x+HDh1SqaGoqAjx8fEICAhAhw4d0LNnT2zevFnpNQoMDMScOXOwYcMG+Pj4wMXFBRMmTEBOTg4OHDiAt956C25ubggKCsKdO3cq/XxUpq6PPvoIERERcHV1RXBwsOK2y5cvh6+vL9q3b4/+/fvjyy+/VNr/pUuXMHbsWHh4eChqT0lJAfB0+rdshsbR0RHr169XW+OVK1fw448/Yty4cUqhXyYoKAjvvvsuateurWi7efMmIiIi0LVrV7i6uiIwMBDJycmK6+/cuQNHR0d89dVXiIiIgJubGzw9PTFr1izFv+Vu3brh4MGDyMzMVNR38OBBODo6qjz/zx/aOX36NIYPHw43Nze88cYbeP/995VGxs9P9Wv6OsTExGDz5s3w8/NDhw4dMGLECKSmpqp93p5Vu3Zt+Pr64tixYyrXffnll+jVq5fSIAEAHjx4gPnz58Pf3x/t27eHp6cnQkNDFY995syZ+Oyzz3D37l04Ojri4MGDiud1x44dCAgIgIuLCw4cOKA01X/p0iU4OzsrPV9//fUXunTpguDgYK4ZqKEY/Drm5+eHzMxMjBgxAnv27EF6errizRQQEIBBgwapvd0vv/yCsLAw9O/fH4sWLVI7bXr48GGEhobCwcEB8fHxCAsLw6FDhzB58mTFfXz33XcIDQ2Fs7MzNmzYgPXr16NZs2ZYsGABLl68qLS/uLg4REZGYs6cOXBzcwPw9A/Dtm3bEBERgfj4eBgbGyM8PBx5eXkvfezFxcWKTSaT4c6dO1iyZAlu3LiBgQMHKvrNmDEDBw4cwMSJE7F9+3ZERUXh+vXrmDZtmtIfnpfVkpWVhdGjR+PRo0eIjY3FlClTsGLFCmRlZSn2IZfLMWnSJGzduhXDhg3Dpk2bEBAQgDVr1qhM+R45cgRnzpzB4sWLERMTgzNnzmD06NFITExEZGSk4jlcsGDBS58LuVyu9HyUbZWp66uvvkKdOnWwceNGjB8/HnK5HKGhodi3bx+Cg4OxceNGuLm5YerUqfj8888BAPn5+Rg/fjzq1auH9evXY/Xq1SgoKMC4cePw6NEjDBs2DEOHDgUAJCUlYdiwYWofx6lTpwA8DVd1TE1NMWfOHHTp0gUAkJaWhsGDB+POnTuYNWsWVqxYAYlEgrFjx+LcuXNKt507dy6aNm2KDRs2YNy4cfj000+xceNGAE//bfr6+sLOzu6F9T3v9u3bmDx5Mtq3b4+NGzdi8eLFuHHjBiZOnKjyYbyir8PXX3+NEydOYNasWVi1ahVycnIQHh6OkpKSl9bVp08fxXR/mfz8fPzwww/o16+fSk0hISE4ffo0PvroI2zbtg1hYWE4c+aMoqbJkycrPT9+fn6K269fvx4TJkzA8uXL0bVrV6V9t2/fHhMmTMBnn32GM2fOAADmzJmD0tJSLF26VOuHa+jVwKl+HRs1ahSys7Oxbds2RUDUq1cP3t7eGDNmDDp27Khym9TUVISEhKBXr15YvHix2jefXC7HihUr4OPjgxUrVijaW7RogaCgIHz//ffw8/NDWloaBg0ahJiYGEUfNzc3eHl54ezZs3BxcVGqNSAgQOl+Hj16hIMHD+K1114D8HS0Mnr0aPz888/o1atXuY/77t27cHZ2Vmlv0aIF5s6dq1hEJpPJ8PjxY8yaNUsxhevp6Yn8/HwsXboUOTk5sLOz06iWnTt3oqSkBJs3b4aNjQ0AoGXLlhg+fLji/n/44Qf89NNPWLVqFfr27QsA6Nq1K8zMzLB27VqMGTMGrVu3BvD0g0tcXBysrKwAAN988w1OnTqF48ePo1mzZgCAlJQUfPHFF+U+D2U+//xzRQg/KykpCa6urhWqq1atWpg/fz6kUimApyPaU6dOYfXq1Yrn0MfHBwUFBVixYgX69euHtLQ0PHz4EGPGjIG7uzsAwMHBAUlJSXj8+LHS9O+LDkncu3cPAGBvb//Sxww8DWypVIrExERYWFgAePphuF+/fli+fDk+/fRTRV9fX19ERkYCALp06YLTp0/ju+++w7Rp09CuXTvY2NiUewipPKmpqSgsLERISAgaNmwI4OlU94kTJ/DkyRNFTWUq+u9j27Ztin08fvwYkZGRuHLlCtq3b//Cuvz8/GBubq403f/tt9/C1tYWHh4eSn3//PNPmJubIzIyEp06dQIAeHl54datW0hKSgIAvPbaayrPT9lsSe/evTFkyJByawkNDcV//vMfzJ8/HxMnTsTx48exdu1axfNFNQ+DXw+mTJmCoKAgnDp1CmfOnMHZs2dx+PBhHDlyBNHR0RgzZoyib2ZmJiZMmAC5XI45c+bAyEj9pExGRgbu37+PkJAQpZHjG2+8AQsLC5w+fRp+fn4YP348gKd/lG7cuIFbt27ht99+A/A0dJ/l5OSkcj82NjaKoAWgCIeXrai2s7NTjNb+/vtvbNiwAbdu3cLSpUsVswnA07UA27ZtA/B0xH7jxg3cvHlTscDp2RpfVktycjJcXV0VoQ8ALi4uaNKkieLyuXPnYGJiovIBZ8CAAVi7di3OnTun+MPeqlUrRegDQP369VGvXj1F6AOAtbU1Hj169MLnAgD8/f0RGhqq0t6qVasK1+Xg4KAIfQA4c+YMJBIJfH19lf4tdOvWDYcOHcL169fRunVr2NjYYNKkSQgICICPjw+6du2K6dOnv7T2ZxkbGwOARqPassfl7++vFLAmJibo27cv4uPj8fjxY0X784HeqFEj3L17t0L1Pc/FxQWmpqYYOnQoAgIC8Oabb8LLy0vtB+6yejV9HV5//XWlx1UWlJp828DMzAzdunVTCv6jR4+id+/eKh/0GzZsiMTERMjlcty5cwd//PEHMjIy8Ouvv6q8h9VR975+Vq1atbBs2TIMGzYMMTExGDRokMrjp5qFwa8nVlZW6Nevn2Ia7/Lly5g+fTpiY2PRv39/1KtXD8DT453e3t44e/Ys4uLiyv1KT25uLgBg/vz5mD9/vsr1f/75J4Cnxwbnzp2L48ePQyKRoHnz5opRw/PH7549Llvm+ZXTZX+U1E2TPksqlaJDhw6Ky+7u7hgyZAgmTJiA/fv3o2XLlorrTp06hX/961/IyMhAnTp10LZtW0Utz9b4slry8vLUjkTLZgzK+tSrV08RYM/3eTbEnx8NAuqfI01YW1srPR/Pq0hdderUUeqTm5sLuVyuGMk/788//4STkxP27NmDjRs34quvvkJSUhLMzMzw9ttvY9asWUofJF6kadOmAJ5+QC1vUVxWVhYaNGgAiUSCvLw81K9fX6VP/fr1IZfLkZ+fr2h7/vU1MjKq8jFme3t77N69G5s3b8ann36KxMREWFpaYtSoUfjggw9UQrYir4O6eoGXvzfK9O7dG2FhYbh//z5MTU1x5swZfPDBB2r7Hjp0CKtWrcK9e/dgbW0NJycnmJmZaXQ/mvybdXJygqOjIy5dugR/f3+N9kvVF4Nfh7KysjBkyBBMmTJF5Zhku3btMHXqVISGhuL27duK4G/Tpg0SEhKwZs0abN++HX379lUbGGWrfmfMmAFPT0+V68tGqh999BEyMjKwc+dOuLm5QSqVoqCgAJ988om2H+4LmZubY+nSpXjnnXcQFRWFvXv3QiKR4NatWwgNDUWPHj2QkJCAZs2aQSKRYM+ePYrjyZqqV68ecnJyVNrLPiQBT5+Xhw8foqSkROmPe9kHpbLXQd+qUlfdunVRu3ZtJCYmqr2+efPmAJ7OFMTGxqKkpASpqan44osvsHfvXrz22muKmaGX8fb2BgB8//33aoO/uLgYb7/9Ntzd3bFhwwZYWVmpfU2ys7MVj6vsMVZUeR9Cn51FAICOHTsiLi4OMpkMycnJSEpKwqZNm9C2bVuVxbX6/Pfx5ptvok6dOjh27Bhq164Ne3t7tYcIzp8/j8jISAQGBmLcuHGKmYXly5crLZKsiqSkJFy6dAlt27bF4sWL0aVLl1fma6akfVzcp0P169eHiYkJPv74YxQVFalcn5GRAVNTU8UfZuDpyNDExAShoaFo1KgRZs2apTR9W8bBwQG2tra4c+cOOnTooNgaNmyIlStX4vLlywCeTn/37NkTXl5eilFd2Up4TUcm2tKxY0cMHz4cFy5cUBzvvnTpEoqKijBx4kS89tprij/mZaFfkRFf586dceHCBaXFfGlpabh9+7bisqenJ4qLi1VWVJet/n/++Kq+VKUuT09PPHnyBHK5XOnfwu+//474+HjFfjt37ozs7GwYGxvDzc0N8+bNg6WlJTIzMwGg3MNKz2rdujXefPNNbNmyRel5LZOQkICHDx9iwIABAJ4eejp58qTSyL6kpARHjx5Fhw4dNJ5pUKdsRubZBXLp6elKH/R27twJf39/yGQySKVSdOnSBQsXLgQAxeN+lj7/fUilUvTo0QNff/01vvrqK8WagudduHABpaWlCA8PV4R+SUkJfvrpJwD/ex9r8vqpc/fuXSxbtgxDhw7Fpk2b8OjRIyxevLhS+6LqgSN+HTI2Nsa8efMQGhqKIUOG4N1330WrVq1QUFCA06dPY8+ePZgyZYrSceQy5ubmmDt3LiZOnIht27YhJCREZd9Tp07FnDlzYGxsDH9/f8Wx9KysLMXCuo4dO+Lw4cNwdnZGo0aN8Ouvv2Lz5s2QSCRaO/NZRXzwwQf46quvsHLlSrz11ltwdnaGiYkJYmNj8d5770Emk+HgwYP47rvvAEDlq4kvMnbsWHz66acYN26cYnX16tWrUatWLUWfsmO8s2bNQlZWFtq2bYtz585hy5YtGDRokN6/062Nunx9ffHGG29g8uTJmDx5Mlq1aoXU1FSsW7cOPj4+sLGxgbu7O0pLSxEaGoqJEyeiTp06+Oqrr/Do0SP07NkTwP9mkY4cOQIXFxeltQzPmj9/PsaOHYvhw4djzJgxcHFxwePHj3Hs2DEcPXoUI0aMUBwjDgsLww8//IAxY8Zg4sSJqFWrFnbv3o3bt29j69atVXrOvLy8YGZmhqVLl2LKlCl4/Pgx1q1bB2tra0Wfzp07Y8WKFQgNDcXo0aNhbGyMffv2QSqVqp3S1ve/jz59+iAkJARGRkaYNWuW2j5l6xEWLFiAIUOGIC8vD3v27FGc+bNskaKlpSVycnLw/fffv/S4fhm5XI6YmBiYm5tjxowZsLKywgcffIB//etf6NWrV7nf3qDqjcGvY35+fvjkk0+wbds2bNq0CQ8ePIBUKkW7du2wevVqxR9ddXx9fdGrVy/Ex8erXUE/bNgw1KlTB1u3bkVSUhJq164Nd3d3rFixQvFHe+nSpVi4cKFilNOiRQvMnz8fhw4dwvnz53XzoF+gXr16mDJlChYsWID4+HhERkZi5cqViIuLw/vvvw8rKyu4urri3//+NwIDA3H+/HmNTy9ar1497N27F4sXL8bMmTNRp04djB8/Xun77BKJBAkJCVi3bh127tyJBw8ewN7eHh9++KHiO/GGUJW6jIyMsHnzZqxduxYJCQn466+/0LBhQwQHBysWFDZo0ABbt27F2rVrERMTg4KCArRu3Rrr169H586dAQA9e/bEF198gZkzZ2Lo0KGYN2+e2vtr0qQJkpKSsGvXLhw5cgSbN2+GVCqFg4MDVq5cqXSCndatW+Pjjz/GqlWrEBUVBYlEgo4dOyIxMVGx1qSyLC0tsX79eqxcuRKhoaFo2rQpwsLClL490bZtW2zatAnx8fH48MMPUVJSgvbt22P79u1wcHBQ2ae+/3383//9HywtLdG4cWPFQs/neXl5Yc6cOdixYweOHTuG+vXrw8vLC3FxcQgNDUVycjJ8fX0xePBgfP/99wgNDUVERIRGJzr6+OOPcebMGaxZs0YxAAkMDMThw4cxZ84cuLu7K32QoppBIucZGoiIiITBY/xEREQCYfATEREJhMFPREQkEAY/ERGRQBj8REREAmHwExERCYTBT0REJJAaeQIf8z5rDV0C6dHDQ1MMXQIR6YiZjlPK3C2s0rctuBCnxUr0p0YGPxERkUYk4k18M/iJiEhcz/00swgY/EREJC4BR/ziPWIiIiKBccRPRETi4lQ/ERGRQASc6mfwExGRuDjiJyIiEghH/ERERAIRcMQv3kcdIiIiPcvKykJERAQ8PT3h4+ODJUuWoKioCABw+/ZtBAUFwdXVFX369MGPP/74wn0dOXIEPXr0gIuLC0JDQ/HgwYMK1cLgJyIicUmMKr9pSC6XIyIiAgUFBdizZw9Wr16NkydPYs2aNZDL5QgNDUX9+vVx4MABvP322wgLC0NmZqbafaWmpiImJgZhYWFISkrC33//jaioqAo9ZE71ExGRuPQw1Z+RkYGUlBScPn0a9evXBwBERERg2bJlePPNN3H79m3s27cPtWvXRqtWrXDmzBkcOHAA4eHhKvvavXs3evfujYEDBwIAli9fDn9/f9y+fRvNmjXTqB6O+ImISFxVGPHLZDLk5+crbTKZTOUu7OzssHXrVkXol8nPz8fFixfRrl071K5dW9Hu4eGBlJQUteVevHgRnTp1Ulxu3LgxmjRpgosXL2r8kBn8REQkLomk0ltCQgI8PDyUtoSEBJW7sLS0hI+Pj+JyaWkpdu/ejc6dOyM7OxsNGjRQ6m9ra4v79++rLffPP/+sUH91ONVPRETiqsLX+UJCQhAcHKzUJpVKX3q72NhYXL58GZ9++il27typchupVKp25gAACgsLK9RfHQY/ERFRJUilUo2C/lmxsbHYtWsXVq9ejTZt2sDU1BS5ublKfWQyGczMzNTe3tTUVCXkZTIZzM3NNa6BwU9EROLS4wl8Fi5ciL179yI2Nha9evUCADRs2BBpaWlK/XJyclSm88s0bNgQOTk5Kv3t7Ow0roPH+ImISFxGkspvFRAXF4d9+/Zh1apV6Nu3r6LdxcUF//3vf1FYWKhoS05OhouLi9r9uLi4IDk5WXH53r17uHfvXrn91T7kClVORERUk+jhe/zp6enYsGEDJkyYAA8PD2RnZys2T09PNG7cGFFRUbh+/To2b96M1NRUDB06FMDTafzs7GyUlJQAAEaOHIkvvvgC+/fvx9WrVzFjxgz4+flp/FU+gMFPREQiq8Kqfk2dOHECJSUl2LhxI7y9vZU2Y2NjbNiwAdnZ2Rg8eDAOHTqE+Ph4NGnSBABw4cIFeHt74969ewAANzc3LFiwAPHx8Rg5ciSsrKywZMmSij1kuVwur9AtqgHzPmsNXQLp0cNDUwxdAhHpiJmOV6KZ91ha6dsWHJ+pxUr0hyN+IiIigXBVPxERiUvAX+dj8BMRkbj0+HW+VwWDn4iIxMURPxERkUA44iciIhKIgCN+8T7qEBERCYwjfiIiEhen+omIiAQi4FQ/g5+IiMTFET8REZFAGPxEREQCEXCqX7yPOkRERALjiJ+IiMTFqX4iIiKBCDjVz+AnIiJxccRPREQkEI74iYiIxCERMPjFm+MgIiISGEf8REQkLBFH/Ax+IiISl3i5z+AnIiJxccRPREQkEBGDn4v7qjGpiTHOb3gXPh2aKtrcXm+A71YOR/aB9/H9quHwdGxkwApJF4qKijB3djS8O3dCd19v7Nq53dAlkQ7x9dYtiURS6a264oi/mjKtZYxdMwLg3KK+os3Oyhxf/mswDpz6HRNXf4tenVrgyOJB8Hh/N25nPzJgtaRNq1Ysx+VLl7Bl+y5kZmZidnQkmjRugrd6BRi6NNIBvt41i0wmw+DBgzF79mx4eXlh5syZ+Oyzz1T6eXl5ITExUaU9Ly8Pnp6eSm3W1tY4e/asxjUw+Kuhts1ssHNGgMp5J97t7oQHjwoQEX8SpaVy/H7nIbq7v4YJfTtgzs6fDFMsadWTJ0/w2YH9iN+0BU7tnOHUzhnpadexb+8eBkENxNdb9/Q5ci8qKsK0adNw/fp1RVtMTAymTZumuHz37l0EBgZizJgxaveRlpYGa2trHDlyRNFmZFSxyXtO9VdDPh2a4ofUO/Cb9olSe4tGVriQ9idKS+WKtks3cuDVtrG+SyQd+f3aVRQXF8PV1U3R5ubugd9SL6K0tNSAlZEu8PXWA0kVtgpIS0vD8OHDcevWLaX2unXrws7OTrGtX78eAQEB6NGjh9r9ZGRkoGXLlkq3sbW1rVAtr8SI/+HDh5DJZDA3N4elpaWhy3nlbfnyN7Xtf+Y+QUeH+kpt9nZ1YWtppo+ySA9ysrNhbV0PtaRSRZutbX0UFRUhNzcXNjY2BqyOtI2vt+7pa8R/7tw5eHl5YerUqXB1dVXb58yZM/jll1/w9ddfl7uftLQ0tGjRokq1GCz4v/nmG+zevRupqakoKipStJuZmaF9+/YYO3ZsuZ94SL3PT6chaqQngns5I/Hby/B3bYZ+nR2Q+Ve+oUsjLSkoLID0mRAAoLj8j0xmiJJIh/h6615Vgl8mk0H23OsglUpVXjMAGDVq1Ev3t3nzZgwaNAiNG5c/S5ueno7i4mIMHToUWVlZ6NSpE6KiotCgQQON6zZI8O/YsQNxcXEYP348wsLCYGtrC6lUCplMhpycHJw/fx4zZ87ElClTEBgYaIgSq6XLf/yFyetOYGWIL9aHdcPFjGxsPpKKN13sDV0aaYmpqanKH5qyy2ZmnNmpafh6615Vgj8hIQFxcXFKbWFhYQgPD6/wvm7fvo2ff/4ZMTExL+yXkZEBGxsbREVFQS6XY/Xq1Zg0aRL2798PY2Njje7LIMG/fft2LFu2TO2IvlWrVvDy8oKjoyMWLlzI4K+gf397GXtOXEEDK3Pcf/gEi9/riltZfxu6LNKSBg0aIjf3IYqLi2Fi8vTtm5OTDTMzM9TlYbIah6/3qy0kJATBwcFKbepG+5r4+uuv4eTkhNdff/2F/Y4ePQqJRKL44Ldu3Tp4e3vj4sWLcHd31+i+DLK4r7CwEPb2Lx6FNmzYEI8e8StoFfFmR3skRgagtFSO+w+fAAB6dmqB71PvGLgy0hbHtk4wMTFB6sUURduFX5Ph3L5DhVf20quPr7fuVeV7/FKpFBYWFkpbZYP/1KlT6N69+0v7mZubK8322NrawtraGllZWRrfl0H+5bz11luYOXMmzp8/j+LiYqXrSktL8euvvyI6Ohq9evUyRHnVVtrdh+jj5YAJfTqgRSNLrJnsj3oWpth9/IqhSyMtMTc3R/+3B2LRgnm49Fsq/nPiOBJ3bseo0eq/+kPVG19vPdDTqv4Xkcvl+O233146Ys/Pz8cbb7yBn3/+WdGWlZWFhw8fwsHBQeP7M8hU/7x587Bs2TKMGzcOJSUlsLa2Vhzjz83NhYmJCd5++21ERUUZorxqK/Ovxxi95EssGeeDJeN9cO7qffSJ/gyPC/8xdGmkRR/NiMLiBfMwPngsLOpa4P3QcPR4q6ehyyId4eutW6/CGfju3r2Lx48fq53mLywsxKNHj2BnZwcLCwt4eHhgyZIlWLhwIYyNjbF48WL4+PjA0dFR4/uTyOVy+cu76UZBQQGuXr2K7OxsFBQUwNTUFA0bNoSTk1OVFq6Y91mrxSrpVffw0BRDl0BEOmKm4+GpXXBSpW+bveOdSt3O0dERiYmJ8PLyAgBcvHgRw4cPx2+//aZyqODgwYOIiorCtWvXADw9c9/SpUtx8uRJyGQydO/eHbNmzYKVlZXG92/Q4NcVBr9YGPxENZeug7/Be5+8vFM5/tw+XIuV6A9XhxAREQnklThzHxERkUEY/hC/3jH4iYhIWK/C4j59Y/ATEZGwGPxEREQCYfATEREJRMTg56p+IiIigXDET0RE4hJvwM/gJyIicYk41c/gJyIiYTH4iYiIBCJi8HNxHxERkUA44iciInGJN+Bn8BMRkbhEnOpn8BMRkbAY/ERERAJh8BMREQlExODnqn4iIiKBcMRPRETiEm/Az+AnIiJxiTjVz+AnIiJhMfiJiIgEImDuM/iJiEhcIo74uaqfiIhIIBzxExGRsAQc8HPET0RE4pJIJJXeKkMmk6Ffv344e/asom3RokVwdHRU2nbv3l3uPnbu3AkfHx+4ubkhOjoaBQUFFaqBI34iIhKWPkf8RUVFmDZtGq5fv67Unp6ejmnTpmHQoEGKNgsLC7X7+PrrrxEXF4fY2FjY2toiKioKsbGxmDNnjsZ1cMRPRETCMjKSVHqriLS0NAwfPhy3bt1SuS49PR3t2rWDnZ2dYjM3N1e7n8TERIwdOxb+/v7o2LEj5s+fjwMHDlRo1M/gJyIiYUkkld8q4ty5c/Dy8kJSUpJSe35+PrKystCiRYuX7qOkpAS//fYbOnXqpGhzdXXFP//8g6tXr2pcC6f6iYiIKkEmk0Emkym1SaVSSKVSlb6jRo1Su4/09HRIJBJs2rQJP/zwA6ytrREcHKw07V/m77//RlFRERo0aKBoMzExgbW1Ne7fv69x3Qx+IiISVlW+x5+QkIC4uDiltrCwMISHh2u8j4yMDEgkEjg4OGD06NH45ZdfMHv2bFhYWOCtt95S6ltYWAgAKh8spFKpygeQF2HwExGRsKqyuC8kJATBwcFKbepG+y8ycOBA+Pv7w9raGgDQtm1b3Lx5E3v37lUJflNTUwBQCXmZTFbumgB1eIyfiIiEVZWv80mlUlhYWChtFQ1+iUSiCP0yDg4OyMrKUulrbW0NU1NT5OTkKNqKi4uRm5sLOzs7je+TwU9ERMLS9/f4n7d27VoEBQUptV29ehUODg4qfY2MjNChQwckJycr2lJSUmBiYoK2bdtqfJ8MfiIiEpa+VvWXx9/fH7/88gu2bduGW7du4eOPP8bnn3+O9957D8DT4/rZ2dmK/qNGjcK2bdtw/PhxpKamYt68eRg+fHiFpvp5jJ+IiMhAOnbsiLVr12LdunVYu3YtmjZtipUrV8LNzQ0A8OWXXyIqKgrXrl0DAPTt2xd3797FnDlzIJPJ0LNnT0yfPr1C9ymRy+VyrT8SAzPvs9bQJZAePTw0xdAlEJGOmOl4eOo2/z+Vvu2Fud20WIn+cMRPRETCEvFHehj8REQkLG0t0qtOGPxERCQsAXOfwU9EROISccTPr/MREREJhCN+IiISloADfgY/ERGJS8Sp/hoZ/Pxet1jqvRFm6BJIjx7+EvfyTkQaEjD3a2bwExERaYIjfiIiIoEImPtc1U9ERCQSjviJiEhYnOonIiISiIC5z+AnIiJxccRPREQkEAY/ERGRQATMfa7qJyIiEglH/EREJCxO9RMREQlEwNxn8BMRkbg44iciIhKIgLnP4CciInEZCZj8XNVPREQkEI74iYhIWAIO+Bn8REQkLhEX93Gqn4iIhGUkqfxWGTKZDP369cPZs2cVbSkpKRgxYgTc3NzQq1cv7N+//4X76NSpExwdHZW2x48fa1wDR/xERCQsfY74i4qKMG3aNFy/fl3Rlp2djQkTJmDkyJFYunQp/vvf/yIqKgp2dnbw8/NT2UdWVhYePXqE48ePw8zMTNFeu3Ztjetg8BMRkbD0lftpaWmYNm0a5HK5Uvvx48dRv359fPjhhwCAFi1a4OzZszh8+LDa4E9PT4ednR2aNWtW6VoY/ERERJUgk8kgk8mU2qRSKaRSqUrfc+fOwcvLC1OnToWrq6ui3cfHB05OTir98/Pz1d5nWloaWrZsWaW6GfxERCQsCSo/5E9ISEBcXJxSW1hYGMLDw1X6jho1Su0+7O3tYW9vr7j8119/4ejRo2r3ATwd8RcUFCAwMBA3btyAk5MToqOjK/RhgMFPRETCquwiPQAICQlBcHCwUpu60b6mCgsLER4ejvr16+Odd95R2ycjIwN5eXn48MMPYWFhgS1btiAoKAhHjx6FhYWFRvfD4CciImFVZXFfedP6lfH48WNMnjwZN2/exMcffwxzc3O1/bZt24Z//vkHderUAQCsWLECvr6+OHnyJPr376/RfTH4iYhIWK/C1/jz8/Mxfvx43Lp1C7t27UKLFi3K7fv8hw1TU1PY29sjKytL4/vj9/iJiEhYRhJJpTdtKC0tRVhYGO7cuYN///vfaN26dbl95XI5evTogYMHDyranjx5gj/++AMODg4a3ydH/ERERAby6aef4uzZs9i4cSMsLS2RnZ0NAKhVqxasra0hk8mQl5cHGxsbGBsbw8/PD+vXr0fTpk1hY2ODtWvXolGjRvD19dX4Phn8REQkLENP9X/99dcoLS1FSEiIUrunpyf+/e9/48KFCxgzZgxOnDgBe3t7TJ8+HSYmJpg2bRry8/PRuXNnbN68GcbGxhrfp0T+/NkEaoDCYkNXQPpU740wQ5dAevTwl7iXd6Iaw0zHw9OhO36t9G0/DXbXYiX6wxE/EREJy9AjfkNg8BMRkbC0tUivOmHwExGRsMSLfX6dj4iISCgc8RMRkbD0+bO8rwoGPxERCasq5+qvrhj8REQkLI74iYiIBCJg7jP4iYhIXCKO+Lmqn4iISCCVCv6SkhJ899132LlzJ/7++29cvHgRjx490nZtREREOmUkqfxWXVV4qv/evXsYN24ccnNzkZeXh+7du2Pr1q24cOECtm3bBkdHR13USUREpHWc6tfAggUL4OHhgVOnTkEqlQIAVq1ahf/7v//DokWLtF4gERGRrkiqsFVXFQ7+8+fP47333lP6CcBatWph8uTJuHTpklaLIyIi0iUjiaTSW3VV4eA3MzPDX3/9pdJ+48YNWFhYaKUoIiIi0o0KB/+IESMwZ84cfPfddwCeBv6BAwcwe/ZsDB06VNv1kQaKioowd3Y0vDt3Qndfb+zaud3QJZEWNbGzwsex43D3u2VI/3oRlk0bDFOp8vIch2b18eDMKgNVSLrE97duSSSV36qrCi/uCw0NhaWlJebNm4eCggJMnDgRtra2CAoKwrhx43RRI73EqhXLcfnSJWzZvguZmZmYHR2JJo2b4K1eAYYujbTg4xXj8fDvJ+jx3mrYWNXBpnnvoqSkFNFrPgcA2De0xsG1k2BuJjVsoaQTfH/rloiL+yp1Ap/AwEAEBgbiyZMnKCkpQd26dbVdF2noyZMn+OzAfsRv2gKnds5waueM9LTr2Ld3D/8w1ABtWjSEV8eWaN49Cn8+ePqV2YUbj2LJ1EGIXvM5+vt1RNzskbifk2fgSkkX+P7WPQFzv+LB//nnn7/w+oEDB1ayFKqM369dRXFxMVxd3RRtbu4e2Lp5E0pLS2FkxHM0VWdZOX+j/+R4ReiXsbQwBwAE+DhjwYYj+P3mn/hm6xRDlEg6xPe37lXnRXqVVeHgX7dundLlkpIS/PXXXzAxMUHHjh0Z/HqWk50Na+t6qCX93zSvrW19FBUVITc3FzY2NgasjqoqL78Ax89cUVyWSCSY9M6bOHnuGgAgdOFeAICPR2uD1Ee6xfe37gmY+xUP/v/85z8qbY8fP8acOXN48h4DKCgsUJxPoUzZ5X9kMkOURDr0rw8GwrVtM3iPjjV0KaQHfH+TLmhlnqhOnToIDw/Hjh07tLE7qgBTU1PInvsDUHbZzMzMECWRjiyKeBtho/zw3qxEXE6/Z+hySA/4/tY9iURS6a260tqv8129ehWlpaUa9//ll1807vvGG29UpiQhNGjQELm5D1FcXAwTk6cvZ05ONszMzFDX0tLA1ZG2rIochglDvfHerER8fiLF0OWQnvD9rXsirpKocPAHBgaqfNJ5/Pgxrl27hqCgII33s2DBAqSlpQEA5HJ5uf0kEgmuXLlS7vWic2zrBBMTE6ReTIG7RycAwIVfk+HcvgMX/tQQ0RN7Y/wQb4yJ2oHPjqcYuhzSI76/da86j9wrq8LB7+XlpdImlUrx0UcfoUuXLhrv58CBA/jwww9x584dJCUlwdTUtKKlEABzc3P0f3sgFi2YhwWL/oU///wTiTu3Y/6iJYYujbTAsWVDRE0IQOyOb/DThXQ0tP3fV2ez/uIvYtZ0fH/rnr5/ZU8mk2Hw4MGYPXu2Ik9v376N2bNnIyUlBU2aNEF0dDS8vb3L3ceRI0ewZs0aZGdnw9vbGwsXLqzQQs8KB39ubi7GjBmD1157raI3VSKVSrFq1SoMHz4ca9asQWRkZJX2J7KPZkRh8YJ5GB88FhZ1LfB+aDh6vNXT0GWRFvT36wgTE2NETeiNqAm9la4zdwszUFWkT3x/65Y+g7+oqAjTpk3D9evXFW1yuRyhoaFo06YNDhw4gOPHjyMsLAxffvklmjRporKP1NRUxMTEYP78+Wjbti0WL16MqKgoJCQkaFyHRP6ieXY1PD09cfDgQdjb21fkZuVKT0/HuXPnMHLkSK3sDwAKi7W2K6oG6r3BABTJw1/iDF0C6ZGZ1laiqffhoauVvu2qAW017puWloZp06ZBLpfj2rVrSExMhJeXF86cOYPJkyfj9OnTqF27NgAgKCgIHh4eCA8PV9nPjBkzYGRkhKVLlwIA7t27B39/f3z77bdo1qyZRrVU+CBRUFAQ5s+fj9OnT+PGjRvIzMxU2iqqVatWWg19IiIiTelrVf+5c+fg5eWFpKQkpfaLFy+iXbt2itAHAA8PD6SkpKjdz8WLF9GpUyfF5caNG6NJkya4ePGixrVo9Fnql19+gZubG0xMTBQn8Dl16hSA/y2MkMvlXIhHRETVSlWm+mUymcrXLaVSqcq5FwBg1KhRaveRnZ2NBg0aKLXZ2tri/v37avv/+eefFeqvjkbBP2bMGPz444+wtbXFiRMnNN45ERHRq6wqi/oTEhIQF6d86CksLEztFH15CgrUn6Tp+Q8UZQoLCyvUXx2Ngv/ZZQBNmzbVeOdERESvsqqcqz8kJATBwcFKbepG+y9iamqK3NxcpTaZTFbuCZrKO6mTubm5xvep8bIJEb/rSERENVtVzoZQ3rR+RTRs2FBxTpsyOTk5KtP5z/bPyclR6W9nZ6fxfWoc/EOGDNHohBE8FEBERKQZFxcXbN68GYWFhYpRfnJyMjw8PMrtn5ycjMGDBwN4uqr/3r17cHFx0fg+NQ7+4OBg1K1b9+UdiYiIqglDT2Z7enqicePGiIqKwuTJk3Hy5EmkpqZiyZKnJ2mSyWTIy8uDjY0NjI2NMXLkSAQGBsLV1RUdOnTA4sWL4efnp/FX+QANg18ikaBv376wtbWt3CMjIiJ6BVXlGL82GBsbY8OGDYiJicHgwYPRvHlzxMfHK07ec+HCBYwZMwYnTpyAvb093NzcsGDBAqxbtw55eXno2rUrFi5cWKH71OgEPm3btsXp06erTfDzBD5i4Ql8xMIT+IhF1yfwmfP19Zd3KseCXq21WIn+aPSUDho0iOfSJyKiGkff5+p/FWgU/GXHGoiIiGoSQ0/1GwJ/15GIiEggOj56QkRE9OoScMDP4CciInHxGD8REZFAJBAv+Rn8REQkLI74iYiIBCJi8HNVPxERkUA44iciImGJ+MuzDH4iIhKWiFP9DH4iIhKWgAN+Bj8REYlLxFP2MviJiEhYIk71c1U/ERGRQDjiJyIiYQk408/gJyIicRnxlL1ERETi4IifiIhIICIu7mPwExGRsET8Oh9X9RMREQmEI34iIhKWgAN+Bj8REYlLxKl+Bj8REQlLwNxn8BMRkbhEXOjG4CciImFJ9DDkP3jwIKKiotTe99WrV1XaBwwYgGvXrim1HT58GG3atNFKPQx+IiIiHerTpw98fHwUl4uLizF27Fj4+fmp9C0pKcHNmzexe/dutGjRQtFer149rdXD4CciImHp4xC/mZkZzMzMFJcTEhIgl8vx0UcfqfS9c+cO/vnnH3Ts2BGmpqY6qYfBT0REwtL3qv7c3Fxs2bIFixYtglQqVbk+LS0NjRs31lnoA2KuayAiIgLwdMRf2U0mkyE/P19pk8lkL7y/vXv3okGDBggICFB7fXp6OmrVqoWQkBB07doVo0ePRmpqqlYeaxkGPxERCUsiqfyWkJAADw8PpS0hIaHc+5LL5di/fz9Gjx5dbp8bN24gLy8Pw4YNw+bNm9GqVSuMHTsW9+7d095jlsvlcq3t7RVRWGzoCkif6r0RZugSSI8e/hJn6BJIj8x0fEB674W7lb7tEGc7lRG+VCpVO4UPAKmpqRg5ciR++uknWFlZqe1TXFyMwsJCWFhYAHj6YWHAgAHo27cvJk2aVOlan8Vj/ERERJXwopBX59SpU+jUqVO5oQ8AJiYmitAHnn7lz8HBAVlZWVWq9Vmc6iciImEZVWGrqNTUVLi7u7+wT2BgIOLi/jerVVpaimvXrsHBwaES96geR/xERCQsfZzAp8z169cxYMAApbaSkhI8ePAAVlZWkEql6NatG+Lj4+Hk5ISWLVsiMTERjx49wqBBg7RWB4OfiIiEpc8v8+Xk5MDS0lKp7d69e+jevTsSExPh5eWFoKAgFBUVYdGiRcjJyYGLiwt27NihNP1fVVzcR9UeF/eJhYv7xKLrxX2fXqz8avmhLo21WIn+cMRP1R6DQCx+K743dAmkRz/P9NXp/kVc6CbiYyYiIhIWR/xERCQsfS7ue1Uw+ImISFjixT6Dn4iIBCbggJ/BT0RE4jIScMzP4CciImGJOOLnqn4iIiKBcMRPRETCknCqn4iISBwiTvUz+ImISFhc3EdERCQQjviJiIgEImLwc1U/ERGRQDjiJyIiYXFVPxERkUCMxMt9Bj8REYmLI34iIiKBcHEfERER1Wgc8RMRkbA41U9ERCQQLu4jIiISCEf8REREAhFxcR+Dn4iIhCVg7nNVPxERka59++23cHR0VNoiIiLU9v3pp5/Qr18/uLi4YMyYMbh9+7ZWa+GIn4iIhGWkp7n+tLQ0+Pv7Y+HChYo2U1NTlX6ZmZkIDQ1FeHg4fHx8EB8fj8mTJ+PQoUOQaKlWBj8REQlLX1P96enpaNOmDezs7F7Yb//+/Wjfvj3ee+89AMCSJUvQtWtXnDt3Dl5eXlqphVP9REQkLkkVtgpIT09HixYtXtrv4sWL6NSpk+Kyubk5nJ2dkZKSUrE7fAGO+ImISFhV+TqfTCaDTCZTapNKpZBKpUptcrkcN27cwI8//oiEhASUlJQgICAAERERKn2zs7PRoEEDpTZbW1vcv3+/0nU+j8FPRETCqsph84SEBMTFxSm1hYWFITw8XKktMzMTBQUFkEqlWLNmDe7cuYNFixahsLAQs2bNUupb1u9ZUqlU5QNGVTD4iYiIKiEkJATBwcFKbc+HNgA0bdoUZ8+ehZWVFSQSCZycnFBaWorp06cjKioKxsbGir6mpqYqIS+TyWBpaam1uhn8REQkrKos7lM3rV8ea2trpcutWrVCUVER8vLyYGNjo2hv2LAhcnJylPrm5OTAycmpCpUq4+I+IiISlx4W9506dQpeXl4oKChQtF25cgXW1tZKoQ8ALi4uSE5OVlwuKCjA5cuX4eLiUokHpx6Dn4iIhCWpwn+acnNzg6mpKWbNmoWMjAx8//33WL58OcaPH4+SkhJkZ2crpveHDBmCX3/9FZs3b8b169cRFRUFe3t7rX2VD2DwExGRwCSSym+asrCwwLZt2/DgwQMMGTIEMTExeOeddzB+/Hjcu3cP3t7euHDhAgDA3t4e69evx4EDBzB06FDk5uYiPj5eayfvAQCJXC6Xa21vr4jCYkNXQES64rfie0OXQHr080xfne7/15t/V/q27i20t+BOnzjiJyIiEghX9RMRkbgE/Hk+Bj8REQmrKmfuq64Y/EREJCw9/TjfK4XBT0REwhIw9xn8REQkMAGTn6v6iYiIBMIRPxERCYuL+4iIiAQi4uI+TvXXAEVFRZg7OxrenTuhu683du3cbuiSSIf4eouhlrEEe8Z1gvtrVirX1TE1xqHQzujboaEBKqtZ9PAbPa8cjvhrgFUrluPypUvYsn0XMjMzMTs6Ek0aN8FbvQIMXRrpAF/vmk9qLMGCAU5oZVdH7fWhfg5oUNdUz1XVUNU5wSuJwV/NPXnyBJ8d2I/4TVvg1M4ZTu2ckZ52Hfv27mEQ1EB8vWu+Fra1sWCAU7lT0C72lnijuTVy8ov0W1gNJeIxfk71V3O/X7uK4uJiuLq6Kdrc3D3wW+pFlJaWGrAy0gW+3jWf+2tWSL6Vi/GJF1Suq2UsQVRAG8R+k4Z/Smrc76uRnnDEX83lZGfD2roeakmlijZb2/ooKipCbm4ubGxsDFgdaRtf75rv4IV75V43tstruJaVj3M3H+qxopqNi/v0RCaTITY2Fr6+vnB3d0dYWBjS09OV+uTk5MDJyckQ5VUrBYUFkD4TAgAUl/+RyQxREukQX29xtbCtjcFuTbD2RPrLO5PGRFzcZ5DgX7VqFY4fP44ZM2ZgwYIFyMnJwZAhQ3D8+HGlfnI5p7JextTUFLLn/uCXXTYzMzNESaRDfL3FFd27DTafuokHT/4xdCk1i4DJb5Cp/q+++gqrVq2Ch4cHAKBv375Yvnw5PvjgA8TGxqJ3794AAImIczAV1KBBQ+TmPkRxcTFMTJ6+nDk52TAzM0NdS0sDV0faxtdbTI0sTdHR3gqvN7BARLdWAACzWkaY0asNerRtgKn7fzNwhdWXiIv7DBL8hYWFsLa2VlyWSCSIjIyEkZERpk+fDhMTE7i5uZW/A1JwbOsEExMTpF5MgbtHJwDAhV+T4dy+A4yMuHazpuHrLabsR0UYuumsUtuGUa74JPkuvv5vloGqqhlEHF8a5C+Fl5cXli9fjgcPHii1T58+He+88w6mTp2Kjz/+2BClVTvm5ubo//ZALFowD5d+S8V/ThxH4s7tGDV6jKFLIx3g6y2mEjlwJ7dQaSuRy/HwiQzZ+VzbQRVjkOCPiYlBbm4uunbtitOnTytdN3v2bEyaNAkJCQmGKK1a+mhGFNq1c8b44LH416L5eD80HD3e6mnoskhH+HoTaY+Ah/ghkRtwBV1GRgbs7OxQt25dlevS09Nx4sQJTJw4scL7LSzWRnVE9CryW/G9oUsgPfp5pq9O9/971pNK37ZNw9parER/DPo9fgcHh3Kva9WqFVq1aqXHaoiISDRc3EdERCQQERf3MfiJiEhYAuY+z9VPREQkEgY/ERGJS0/L+rOyshAREQFPT0/4+PhgyZIlKCpS/wuL77//PhwdHZW2kydPVurhqcOpfiIiEpY+FvfJ5XJERETA0tISe/bsQV5eHqKjo2FkZITIyEiV/unp6YiNjUWXLl0UbVZWVlqrh8FPRETC0sfivoyMDKSkpOD06dOoX78+ACAiIgLLli1TCX6ZTIY7d+6gQ4cOsLOz00k9DH4iIhKWPhb32dnZYevWrYrQL5Ofn6/SNyMjAxKJBM2aNdNZPTzGT0RE4qrCMX6ZTIb8/Hyl7flfzwQAS0tL+Pj4KC6XlpZi9+7d6Ny5s0rfjIwMWFhYYMaMGfD29sbQoUPx/ffaPWkVg5+IiKgSEhIS4OHhobRpcrr52NhYXL58GVOnTlW5LiMjA4WFhfD29sbWrVvh6+uL999/H7/9pr1fYDToKXt1hafsJaq5eMpesej6lL1//KV+Zb0mGteVqIzwpVIppFJpubeJjY3Fjh07sHr1avTq1Uvl+tLSUjx69EhpMd+kSZNgZ2eHhQsXVrrWZ/EYPxERCasqi/teFvLPW7hwIfbu3YvY2Fi1oQ8ARkZGKiv4HRwckJaWVvlCn8PgJyIiYenrzH1xcXHYt28fVq1ahYCAgHL7zZw5ExKJBEuWLFG0Xb16FW3atNFaLTzGT0REwpJIKr9pKj09HRs2bMCECRPg4eGB7OxsxQYA2dnZKCwsBAB069YNhw8fxueff44//vgDcXFxSE5OxujRo7X2mDniJyIigel+zH/ixAmUlJRg48aN2Lhxo9J1165dg7e3N5YsWYLBgwejZ8+emDt3LjZu3IjMzEy0bt0aW7duhb29vdbq4eI+IqpWuLhPLLpe3HfnoerX7zRlX0/z4/uvEo74iYhIWPxZXiIiIoEImPsMfiIiEhdH/ERERALRx6/zvWoY/EREJC7xcp/f4yciIhIJR/xERCQsAQf8DH4iIhIXF/cREREJhIv7iIiIRCJe7jP4iYhIXALmPlf1ExERiYQjfiIiEhYX9xEREQmEi/uIiIgEIuKIn8f4iYiIBMIRPxERCYsjfiIiIqrROOInIiJhcXEfERGRQESc6mfwExGRsATMfQY/EREJTMDk5+I+IiIigXDET0REwuLiPiIiIoGIuLiPU/1ERCQsSRW2iigqKkJ0dDQ6deoEb29vbN++vdy+ly9fxrBhw+Di4oIhQ4bg0qVLFX1YL8TgJyIicekp+ZcvX45Lly5h165dmDt3LuLi4nDs2DGVfk+ePMHEiRPRqVMnHDx4EG5ubggJCcGTJ08q/RCfx+AnIiJhSarwn6aePHmC/fv3IyYmBs7Oznjrrbcwfvx47NmzR6Xvl19+CVNTU8yYMQOtWrVCTEwM6tSpo/ZDQmUx+ImIiHTo6tWrKC4uhpubm6LNw8MDFy9eRGlpqVLfixcvwsPDA5L/v/hAIpHA3d0dKSkpWquHi/uIiEhYVVncJ5PJIJPJlNqkUimkUqlSW3Z2NurVq6fUXr9+fRQVFSE3Nxc2NjZKfV9//XWl29va2uL69euVL/Q5NTL4zWrkoyIiAPh5pq+hS6AapCp5sX59AuLi4pTawsLCEB4ertRWUFCg8mGg7PLzHxzK6/t8v6pgRBIREVVCSEgIgoODldqeD20AMDU1VQnusstmZmYa9X2+X1Uw+ImIiCpB3bS+Og0bNsTDhw9RXFwME5OnsZudnQ0zMzNYWlqq9M3JyVFqy8nJQYMGDbRWNxf3ERER6ZCTkxNMTEyUFuglJyejQ4cOMDJSjmEXFxdcuHABcrkcACCXy/Hrr7/CxcVFa/Uw+ImIiHTI3NwcAwcOxLx585Camorjx49j+/btGDNmDICno//CwkIAQEBAAP7++28sXrwYaWlpWLx4MQoKCtC7d2+t1SORl32sICIiIp0oKCjAvHnz8M0338DCwgLjxo1DUFAQAMDR0RFLlizB4MGDAQCpqamYO3cu0tPT4ejoiPnz56Ndu3Zaq4XBT0REJBBO9RMREQmEwU9ERCQQBj8REZFAGPw1QEV+7pFqDplMhn79+uHs2bOGLoV0KCsrCxEREfD09ISPjw+WLFmCoqIiQ5dF1RhP4FMDPPtzj5mZmYiMjESTJk0QEBBg6NJIR4qKijBt2jStnr+bXj1yuRwRERGwtLTEnj17kJeXh+joaBgZGSEyMtLQ5VE1xeCv5sp+7nHLli1wdnaGs7Mzrl+/jj179jD4a6i0tDRMmzYN/EJOzZeRkYGUlBScPn0a9evXBwBERERg2bJlDH6qNE71V3MV+blHqhnOnTsHLy8vJCUlGboU0jE7Ozts3bpVEfpl8vPzDVQR1QQc8VdzFfm5R6oZRo0aZegSSE8sLS3h4+OjuFxaWordu3ejc+fOBqyKqjsGfzVXkZ97JKLqLTY2FpcvX8ann35q6FKoGmPwV3MV+blHIqq+YmNjsWvXLqxevRpt2rQxdDlUjTH4q7mK/NwjEVVPCxcuxN69exEbG4tevXoZuhyq5ri4r5qryM89ElH1ExcXh3379mHVqlXo27evocuhGoDJUM297Oceiaj6Sk9Px4YNGzBhwgR4eHggOztbsRFVFqf6a4CoqCjMmzcPY8eOhYWFBcLDw9GzZ09Dl0VEVXTixAmUlJRg48aN2Lhxo9J1165dM1BVVN3xZ3mJiIgEwql+IiIigTD4iYiIBMLgJyIiEgiDn4iISCAMfiIiIoEw+ImIiATC4CciIhIIg5+IiEggDH4iLenWrRscHR0Vm7OzMwICArBz506t3UdgYCDWr18PAJg5cyZmzpz50tvIZDJ88sknlb7PgwcPolu3bpW+PRG9WnjKXiItio6ORp8+fQAAxcXF+PnnnxETEwNra2sMHDhQq/cVExOjUb+jR49i06ZNGD58uFbvn4iqJ474ibSobt26sLOzg52dHRo3boxBgwahS5cu+Oabb3RyX3Xr1n1pP56Vm4iexeAn0jETExPUqlULgYGBWLhwIbp37w4/Pz/k5+fj3r17mDRpElxcXNCtWzfExcWhpKREcdtvv/0WvXr1gqurKxYsWKB03fNT/V988QUCAgLg4uKCESNG4PLlyzh79iyioqJw9+5dODo64s6dO5DL5YiPj4e3tzc6deqESZMmITMzU7GfrKwsjB8/Hq6urhg0aBBu3bqlnyeKiPSCwU+kI//88w+++eYbnD59Gt27dwfw9Hh5bGws4uLiUKdOHYSFhcHW1hafffYZlixZgsOHD2PTpk0AgLS0NHzwwQcYOXIkDhw4gOLiYiQnJ6u9r1OnTiEmJgZjx47FoUOH0L59e4SEhMDNzQ3R0dFo1KgRfvzxRzRu3Bi7d+/G4cOHsXLlSiQlJcHW1hbvvfce/vnnHwDAlClTUFpaiv3792PChAnYtWuXfp4wItILHuMn0qK5c+di4cKFAIDCwkKYmZlh7NixGDBgAPbv3w8/Pz+4u7sDAM6cOYPMzEzs378fRkZGcHBwQGRkJKKiohAaGooDBw6gU6dOCAoKAgDMnj0bJ0+eVHu/SUlJ6NevH0aOHAkAmDFjBmrVqoW8vDzUrVsXxsbGsLOzAwBs3boVc+fOhZeXFwBgwYIF8Pb2xqlTp9CsWTNcuHABJ0+eRJMmTdC6dWtcunQJx44d0+XTRkR6xOAn0qKIiAj07NkTAGBqago7OzsYGxsrrm/atKni/9PT05GbmwsPDw9FW2lpKQoLC/Hw4UOkp6fDyclJcV2tWrWULj/rxo0bGDFihOKyVCpFZGSkSr/Hjx/j/v37mDp1KoyM/jfhV1hYiJs3b6KoqAjW1tZo0qSJ4roOHTow+IlqEAY/kRbZ2tqiefPm5V5vamqq+P/i4mI4ODhgw4YNKv3KFu09vzCvVq1aavdrYqLZW7lsjcDatWvRsmVLpeusrKxw5swZje+TiKonHuMnMpCWLVsiMzMTNjY2aN68OZo3b447d+5g3bp1kEgkaN26NX777TdF/9LSUly9elXtvpo3b650XUlJCbp164bk5GRIJBJFu6WlJWxtbZGdna24z8aNGyM2NhY3btxAmzZtkJeXhz/++ENxmytXrujg0RORoTD4iQzE29sbTZs2xfTp03Ht2jWcP38es2fPhrm5OYyNjTF8+HBcunQJGzduREZGBpYtW6a0+v5ZgYGBOHToED777DP88ccfWLJkCeRyOZydnWFubo68vDzcvHkTxcXFCAoKwpo1a/Cf//wHN2/exKxZs/Drr7/CwcEBrVq1QpcuXRAdHY2rV6/i+PHj2L17t56fGSLSJQY/kYEYGxtj48aNKC0txfDhwxEeHg5fX1/MmjULwNNR/MaNG3H06FEMHDgQ2dnZ8PX1VbuvN954A3PnzkV8fDwGDBiAK1euYNOmTTAzM0Pnzp3RvHlz9O/fH1euXMG4ceMwdOhQzJkzBwMHDkRmZia2bdsGKysrAMDq1atRr149jBgxAqtWrUJgYKDenhMi0j2JnGf3ICIiEgZH/ERERAJh8BMREQmEwU9ERCQQBj8REZFAGPxEREQCYfATEREJhMFPREQkEAY/ERGRQBj8REREAmHwExERCYTBT0REJJD/BxxKgydA8vT/AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 600x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 计算混淆矩阵并可视化\n",
    "def plot_confusion_matrix(y_true, y_pred, title):\n",
    "    cm = confusion_matrix(y_true, y_pred)\n",
    "    plt.figure(figsize=(6, 4))\n",
    "    sns.heatmap(cm, annot=True, fmt='d', cmap='Blues')\n",
    "    plt.title(title)\n",
    "    plt.xlabel('Predicted')\n",
    "    plt.ylabel('True')\n",
    "    plt.show()\n",
    "\n",
    "# 绘制混淆矩阵\n",
    "plot_confusion_matrix(y_test, dt_predictions, 'Decision Tree Confusion Matrix')\n",
    "plot_confusion_matrix(y_test, custom_rf_predictions, 'Custom Random Forest Confusion Matrix')\n",
    "plot_confusion_matrix(y_test, sklearn_rf_predictions, 'Sklearn Random Forest Confusion Matrix')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 实验总结\n",
    "- 在Wine数据集上实现了决策树、自定义随机森林和sklearn随机森林\n",
    "- 自定义随机森林通过bagging和决策树集成实现了分类任务\n",
    "- 通过准确率、F1分数、分类报告和混淆矩阵对比了三种模型的性能\n",
    "## 结论\n",
    "随机森林（包括自定义和sklearn实现）通常比单棵决策树表现更优，体现了集成学习的优势。sklearn的随机森林可能由于优化的实现（如特征选择和并行化）而略优于自定义版本。后续可通过调整超参数（如树的数量、最大深度、最小分裂样本数）进一步优化性能。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.15"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
